본문 바로가기
반응형

Emacs27

Emacs 이 블로그의 Emacs Note 카테고리 글 일부를 별도로 링크로 정리하는 글입니다. 카테고리로 보기가 불편할 때 참고하기 위한 지극히 개인적인 용도입니다. Emacs Lisp 리스트 다루기 파일/디렉토리 경로와 관련된 Emacs Lisp 함수들 문자열 처리 함수들 Filter와 Map Let과 Let* Property List Emacs Lisp Snippets 파일 읽어서 내용 수정하고 저장하기 Org Mode Tips Org Mode 문서에 외부 이미지 넣기 Org Mode 테이블 스프레드시트 Org Publish로 익스포트 자동화하기 2020. 3. 24.
파일/디렉토리 경로와 관련된 Emacs Lisp 함수들 파일 경로나 디렉터리 경로를 다루는 Emacs Lisp 함수 몇 가지를 정리합니다. 완벽한(?) 경로 구하기 (expand-file-name "~/.emacs.d") ;; => "/Users/seorenn/.emacs.d" UNIX에서 홈 디렉터리($HOME)를 축약해서 표시하는 문자인 ~(Tilde, 물결 혹은 지렁이 무늬)를 원래 경로로 치환하는 데 주로 사용합니다. 와일드카드를 이용해 특정 경로의 파일 목록 구하기 (file-expand-wildcards "~/.emacs.d/*.el") ;; => ("~/.emacs.d/early-init.el" "~/.emacs.d/init.el" "~/.emacs.d/init.example.el") 배치 작업을 위해 파일 목록을 구할 때 편하게 사용할 수 있습.. 2020. 3. 23.
파일 읽어서 내용 수정하고 저장하기 (Emacs Lisp) Emacs Lisp을 이용해 특정 파일 내용을 읽어서 여기에 몇 가지 내용을 추가한 후 다른 파일로 저장하는 코드입니다. (with-temp-buffer (insert-file-contents "/foo/bar/file.md") (goto-char (point-min)) (insert "# New Header") (search-forward "Status: ") (insert "TODO") (goto-char (point-max)) (insert "# Footer") (write-file "/foo/bar/file-updated.md")) 추가로 아래와 같은 함수를 참고할 수 있습니다. (erase-buffer) :: 버퍼 내용을 몽땅 삭제 (delete-char N) :: N 개수만큼 글자를 삭제 (s.. 2020. 3. 23.
Tmux에서 트루컬러 이맥스 사용하기 앞서 쓴 터미널에서 트루컬러 이맥스 사용하기에 대한 글의 연장선의 내용입니다. 터미널에서 24비트 트루컬러를 지원하더라도 Tmux 안에서 이맥스를 실행시킬 경우 색상이 이상하게 표시되는 경우도 있습니다. 이 경우는 아마도 tmux 가 사용하는 screen-256이라는 터미널 타입의 문제로 추측됩니다. 이 경우도 앞의 터미널 타입을 만드는 방식과 비슷한 방법으로 해결할 수도 있습니다. 우선 tmux 설정에 아래 내용을 추가합니다. set -ga terminal-overrides ",st-256color:Tc" 이후 tmux 를 재시작합니다. 다음으로 아래 내용을 screen-24bit.terminfo 라는 파일에 저장합니다. 역시 위치도 상관은 없지만 셸에서 접근하기 편한 경로가 좋습니다. # From [.. 2020. 2. 8.
터미널에서 트루컬러 이맥스 사용하기 저는 터미널로 iTerm2를 사용합니다. 그리고 iTerm2는 트루컬러(24bit True Color)를 지원하는 터미널입니다. 그런데 이상하게도 이맥스(Emacs)를 터미널 모드로 띄워보면 GUI 모드와 색상이 다른 경우를 종종 볼 수 있습니다. 이는 사용하는 터미널 타입이 트루 컬러 모드가 아니기 때문에 나타나는 어쩔 수 없는 증상입니다. 터미널에서 트루컬러를 제대로 지원하기 위해서 약간의 트윅(tweak)이 필요합니다. 참고로 이 트윅은 개인적으로 macOS에서 iTerm2로만 확인했기 때문에 다른 OS나 터미널 앱에서는 어떻게 되는지는 잘 모른다는 것에 주의 부탁드립니다. 우선 xterm-24bit.terminfo 라는 파일을 만들고 아래 내용을 붙여 넣습니다. xterm-24bit|xterm w.. 2020. 2. 7.
Org Mode 테이블 스프레드시트 Org Mode 문서의 테이블은 다양한 기능을 제공합니다. 그중 하나가 테이블 셀을 이용해 계산을 하는 것입니다. 마치 엑셀이나 Numbers, 구글 독스에서 제공하는 스프레드시트(Spreadsheet)와 비슷합니다. 이 기능에 대해 간략히 정리해 보는 글입니다. 참고로 이 글에서 언급하는 단축키는 Doom Emacs 기준입니다. 테이블 일단 아래와 같은 테이블을 만들었다고 가정해봅시다. | Kind | Price | Ideal | Earning | |-------+-------+-------+---------| | Book | 100 | 99 | | | Apple | 256 | 30 | | | Coke | 4 | 9 | | |-------+-------+-------+---------| | | | | .. 2020. 1. 31.
Org Mode 문서에 외부 이미지 넣기 Org Mode 문서에 이미지를 넣기 위해서는 단순히 이미지 파일을 준비해놓고 아래처럼 링크 문법으로 이미지 파일의 경로를 적어주면 됩니다. [[./foo/bar/image.png]] 하지만 외부 이미지, 즉 다른 사이트에 있는 이미지를 문서에 첨부하려는 경우는 좀 다릅니다. 예를 들어 아래의 경우를 봅시다. [[https://foo.bar/img/image.png]] 위 링크는 과연 이미지가 나올까요? 아니면 링크가 걸릴까요? 물론 평범하게 URL 링크가 걸리게 됩니다. 따라서 당연하게도 익스포트 한 결과물에는 이미지가 나오지 않지요. 자 그러면 이 문제를 어떻게 해결하면 좋을까요? 커스텀 링크 Org Mode에는 친절하게도 org-add-link-type 함수를 이용해 커스텀 링크를 추가하는 방법을 .. 2020. 1. 14.
Org Publish가 이맥스를 자꾸 얼리고 있어요 앞서 Org Publish에 관한 글을 썼습니다. 매우 편하게 Org Mode 글들을 자동으로 익스포트 해주는 고맙고 편한 도구이지요. 그런데 글들을 익스포트 하기 위해 org-publish-all 등의 함수를 사용하면 간혹 이맥스가 꽁꽁 얼어버립니다. 반응도 없이 마치 죽은 것처럼 말이죠. 이 글은 이 문제를 해결하기 위한 사투를 간단하게(?) 정리하는 글입니다. 긴 글을 읽고 싶지 않으시다면 가장 마지막의 '대안' 항목을 읽어보세요. 문제를 찾아보려 했으나 증상을 정확히 정의하자면, 글을 편집하고 나서 org-publish 혹은 org-publisha-all 함수를 사용해 업데이트 한 글을 자동으로 퍼블리시를 시도하는데 이때 특정 확률로 이맥스가 멈춰 버리고 커서가 바람개비 뺑뺑이로 표시되고 CPU .. 2020. 1. 10.
Org Publish로 익스포트 자동화하기 Org Publish는 이맥스(Emacs)에서 Org Mode로 작성된 .org 문서들로 정적 웹사이트를 만들 수 있게 해주는 도구입니다. 쉽게 말해서 특정 디렉터리 안의 .org 파일들을 .html 파일로 익스포트 해서 원하는 디렉터리로 복사해 줍니다. 그리고 각종 css나 스크립트, 이미지 등의 파일도 자동으로 복사하는 등의 기능을 제공합니다. 제 관리가 안 되는 😭 깃헙 페이지도 이 Org Publish를 이용해 만들었습니다. 시작하기 설명을 시작하기에 앞서 아래와 같은 디렉터리에서 글을 쓴다고 가정합니다. ~/org/ static/ style.css img/ someimage.jpg index.org foobar.org ... 이 가정에서는 ~/org 라는 디렉토리에서 .org 파일로 글을 작성합.. 2020. 1. 9.
Doom Emacs에서 Emojify 사용해보기 이맥스에서 글을 쓰다 보면 종종 이모티콘을 입력하고 싶은데 막막할 때가 있습니다. 맥의 경우 Command+Control+Space 키를 이용해 이모티콘을 쉽게 검색해서 입력할 수 있는데 이맥스는 이 키 입력을 몽땅 먹어버리기 때문이지요. (윈도는 어떤지 모릅니다만...) 그래서 정보를 찾아보니 Emojify라는 확장이 있었습니다. 이맥스에서 이모티콘(에모지)를 표시하거나 입력하는 것을 도와주는 확장이라니 딱 맞네요. 설치, 설정 및 사용하기 우선 설치하기 위해서 packages.el 파일을 열어서 아래 한 줄을 넣습니다. (package! emojify) 이후 터미널에서 아래 커맨드를 입력하여 패키지가 설치될 수 있도록 합니다. ~/.emacs.d/bin/doom refresh 그 다음 아래 설정을 c.. 2019. 12. 29.
Doom Emacs 라는 것을 설치해봤다 TL;DR 설치 방법은 공식 문서를 보시거나 혹은 Doom Emacs 설치하기 글을 참고하세요. Doom Emacs라는 것을 설치해봤다 저는 Emacs와 Vim을 10년 이상 써온 늙은(?) Emacer이자 Vimmer입니다. 둘 다 장단점이 있고 유용한 곳이 있는 만큼 둘 다 손을 놓지 않고 있었지요. 그러다가 Spacemacs를 만나게 되고 Emacs와 Vim의 합체가 그다지 나쁘지는 않다는 생각에 Spacemacs를 계속 써 왔습니다. 그런데 뭐 영원한 순간은 잘 없지요. Spacemacs에 뭔가 잘 안 될 때마다 라이벌 관계에 있는 Doom Emacs에 대한 관심이 점점 증폭해 갔습니다. 그러다 누군가의 설치기를 구글링으로 찾게 되었고 그대로 해보기로 결심합니다. Spacemacs와 동일하게 시작.. 2019. 11. 25.
728x90
반응형