Doom Emacs 설정 관련 팁
≡ 목차 (Table of Contents)
설정 파일 위치
기본적으로 ~/.doom.d
디렉터리를 개인 설정 파일 위치로 이용할 수 있다. install 커맨드로 설치할 때 자동으로 보일러플레이트 코드들이 여기에 준비된다.
설정 파일 쉽게 열기
SPC f p
를 누르면 개인 설정 파일 목록이 뜨기 때문에 쉽게 열 수 있다.
설정 파일 용도
init.el
은 둠의 핵심인 모듈 설정이 들어간다. 원하는 모듈을 목록에 추가하면sync
시 자동으로 설치된다.config.el
은 일반적인 설정 코드를 넣을 수 있다.packages.el
은 추가로 필요한 패키지나 혹은 필요 없는 패키지들을 나열할 수 있다. 해당 패키지는sync
시 설치되거나 삭제된다.
설정을 고친 후
Doom Emacs는 설정 후 동기화가 성능 이슈로 자동화가 지원되지 않는다. 따라서 설정, 특히 패키지를 추가하거나 제거하는 등의 설정을 한 이후에는 반드시 sync 커맨드를 실행키셔 주어야 한다.
~/.emacs.d/bin/doom sync
참고로 sync는 과거에는 refresh와 purge라는 이름으로 양분되어 있던 커맨드가 합쳐지면서 새롭게 만들어진 커맨드다.
만약 삭제하려는 패키지가 제대로 삭제가 안 되는 경우는 -p
(purge) 옵션을 추가해서 시도해보자.
~/.emacs.d/bin/doom sync -p
폰트 설정
폰트나 텍스트 크기는 config.el
에 아래와 같은 식으로 설정할 수 있다.
(setq doom-font (font-spec :family "Menlo" :size 14))
이 설정은 고정폭 폰트에만 유효하다.
줄 간격 설정
줄 간격(line spacing 혹은 line height) 설정은 아래와 같은 식의 코드를 config.el
에 넣으면 설정할 수 있다.
(setq-default line-spacing 2)
이 설정은 Emacs 기본 설정이라 굳이 Doom Emacs 설정에 넣을 필요는 없었던 것 같지만 일단 썼으니 그냥 남겨둔다.
창 초기 위치 및 크기 설정
아래 예제는 위에서 120픽셀, 좌측에서 50픽셀 떨어진 곳에 80x24 크기로 Emacs 창을 배치 시키는 코드다.
(when window-system (setq initial-frame-alist '((top . 120) (left . 50) (width . 80) (height . 24))))
이 코드도 적당히 config.el
에 넣으면 된다.
참고로 top, left 값은 픽셀인 반면, width와 height 값은 문자 개수로 표현한다. 즉 width 80 height 24 값은 가로 80행 세로 24열의 의미다.
배경 색이 버퍼마다 다른 경우
Doom Emacs에 포함된 solaire-mode
는 배경 색을 임의로 변경하는 확장이다. 이걸 비활성화 하면 배경 색이 바뀌는 문제는 해결된다.
packages.el
파일을 열어서 아래 한 줄을 넣어주자.
(package! solaire-mode :disable t)
수정 후에는 ~/.emacs.d/bin/doom sync
커맨드를 잊지 말자.
이모티콘 입력기
이모티콘(emoji) 입력은 emojify 라는 확장으로 해결할 수 있다. packages.el
에 아래 내용을 넣고 sync 하면 쉽게 설치할 수 있다.
(package! emojify)
특정 문자가 자동으로 이모티콘으로 표시되게 하고 싶다면 아래 코드를 config.el
에 넣어주자.
(add-hook! 'after-init-hook #'global-emojify-mode)
위 코드는 옵션이고 유니코드 기반 이모티콘만 사용 할거라면 없어도 된다.
sync가 완료된 후 Emacs를 재시작하고 SPC :
를 눌러 emojify-insert-emoji
함수를 찾아서 실행시키면 이모티콘 입력기가 뜬다.
프로젝트 추가하기
Git 저장소 등 몇몇 디렉터리는 방문 시 자동으로 Projectile로 프로젝트 디렉터리로 인식되고 자동으로 등록된다. 하지만 이런 특수한 디렉토리 말고 일반 디렉터리의 경우는 프로젝트로 인식되지 않는다.
이런 일반 디렉터리도 프로젝트로 등록해 줄 수 있다. 아래와 같은 코드를 config.el
에 넣어보자.
(projectile-add-known-project "~/boo/bar/project")
물론 개수는 상관 없다. 원하는 만큼 등록할 수 있다.
컬러 테마 커스터마이징
컬러 테마를 커스터마이징 하기 위해서 doom-themes-set-faces
함수가 준비되어 있다.
(doom-themes-set-faces nil '(foo-face :foreground #123456) '(bar-face :background nil))
첫 매개변수 nil
은 테마 이름인데 nil
로 설정할 경우 모든 테마에 적용된다.
페이스(색상이나 폰트 등의 정보)를 찾을 때는 커서를 원하는 위치에 놓고 SPC h F
를 눌러보면 쉽게 알 수 있다.
visual-line-mode와 커서 이동
visual-line-mode
가 켜졌을 때 커서 키를 위 혹은 아래로 이동시키는 경우 visual wrap된 라인을 그대로 통과해버리고 만다. 즉 물리적으로 다음 혹은 이전 라인으로 커서를 이동시키기 때문에 가상으로 줄바꿈된 것을 인지하지 못 하도 통과해 버리는 것이다.
이 경우 아래 코드를 ~/.doom.d/init.el
최상단에 넣어놓자.
(setq evil-respect-visual-line-mode t)
왜 하필 config.el
도 아니고 init.l
의 최상단이냐 하면, 관련된 모든 설정이 로드되기 전에 정의되어 있어야만 효과가 나타나기 때문이다.