Doom Emacs 단축키

2022년 9월 20일 수정

이 글은 Doom Emacs에서 개인적으로 자주 사용하는 단축키들을 정리한다.

설정(Configuration) 관련

SPC f p
설정 파일 열기 (선택 다이얼로그가 뜬다)
SPC h r r
설정 싱크(sync) 및 리로드(doom/reload)

파일, 프로젝트, 워크스페이스 관련

SPC f f
find-file, 즉 파일 열기
SPC .
현재 디렉토리에서 파일 열기 (생성하기도 가능)
SPC p p
프로젝트 전환(워크스페이스가 없으면 생성)
SPC SPC
프로젝트 파일 열기
SPC TAB .
워크스페이스(프로젝트) 목록 및 전환
SPC TAB NUM
NUM 숫자에 해당하는 워크스페이스로 전환

버퍼(Buffer) 관련

SPC , 혹은 SPC b b
워크스페이스(혹은 프로젝트) 버퍼 전환
SPC `
동일 워크스페이스의 이전 버퍼로 전환
SPC b B
버퍼 전환
SPC b p
이전 버퍼로 전환
SPC b n
다음 버퍼로 전환
SPC p x
스크래치 버퍼를 작게 아래쪽에 띄우기

창(Window)

참고로 Emacs에서 창(window)이란 하나의 윈도를 여러 pane으로 분할해서 쓰는 것을 의미하지 용어에 주의하자.

SPC w s
창을 위아래로 나누기
SPC w v
창을 좌우로 나누기
SPC w w
다음 창으로 포커스(커서) 이동
SPC w c
창 닫기
SPC w j 혹은 SPC w k
아래쪽 창 혹은 윗쪽 창으로 이동하기
SPC w h 혹은 SPC w l
왼쪽 창 혹은 오른쪽쪽 창으로 이동하기
SPC w o
하나의 창을 많이 크게 만들기
SPC w C-o
현재 창만 남기고 다른 창 닫기
SPC w =
모든 창의 크기를 비슷하게 맞추기
C-w C-w 혹은 C-x o
지정된 캐릭터의 윈도로 스위칭(ace-window)

폴딩(Folding)

z f
선택 영역 접기(폴딩)
z a
폴딩 토글하기
z d
폴딩 제거하기(코드는 당연히 삭제 안됨)
z E
모든 폴딩 제거
z j
다음 폴딩으로 이동
z k
이전 폴딩으로 이동

셸(Shell) 혹은 터미널(Terminal)

SPC o t
터미널 열기

템플릿(Snippets)

SPC s /
스니펫 목록 및 검색하기

검색(Search)

SPC s p
프로젝트에서 검색(search in project)
SPC s d
디렉터리에서 검색(search in directory)
C-c C-o
검색 내용 버퍼를 별도의 창에 띄우기
SPC '
계속 검색(ivy-resume)

점프(Jump)

t [character]
해당 문자로 점프(evil-snipe)
s [characters]
문자 완성 형식으로 해당 문자열로 점프(evil-snipe)
S [characters]
문자 완성 형식으로 해당 문자열로 역방향 점프(evil-snipe)
g s j
표시된 문자를 입력한 위치로 아래방향 점프(evil-easymotion)
g s k
표시된 문자를 입력한 위치로 아래방향 점프(evil-easymotion)
g s SPC
키보드로 입력하는 글자 위치로 점프(avy)

멀티 커서(Multiple Cursors) - evil-multiedit

M-d
현재 커서 위치의 단어 혹은 선택영역 선택 혹은 아래 방향으로 같은 단어를 하나 검색해서 선택
M-D
현재 커서 위치의 단어 혹은 선택영역 선택 혹은 윗쪽 방향으로 같은 단어를 하나 검색해서 선택
영역 선택 후 R
해당 단어 모두 선택
R
선택된 단어들을 덮어쓰기(Replace) 모드로 몽땅 편집하기
I
선택된 단어들을 삽입(Insert) 모드로 몽땅 편집하기
D
선택된 단어들을 삭제하기
C-n 혹은 C-p
선택중인 다음 혹은 이전 단어들로 점프
RET
선택 영역 토글
ESC
탈출(Exit evil-multiedit mode)

멀티 커서(Multiple Cursors) - evil-mc

g z z
현재 위치에 커서 만들기
g z j
현재 커서 위치에서 서브커서를 만들고 아래로 이동 (g z k 는 위로)
g z m
현재 커서 위치와 관련이 있는 모든 곳에 서브커서 생성
g z d
현재 커서의 단어 끝이 서브커서를 만들고 비슷한 다음 단어로 커서 이동(g z D 는 이전으로 이동)

Surrounding(evil-surround)

S >
surround selection by <>
S )
surround selection by ()

특수 텍스트 변환

!
연관 텍스트로 변환 rotate-text

Emacs Lisp 관련

SPC :
함수 실행하기(Emacs 의 M-x 와 동일). 콜론 주의.
SPC ;
명령 실행하기(eval expression). 세미콜론임에 주의
g r
선택 영역 실행하기(eval region)
g R
버퍼 전체 실행하기(eval buffer). 근데 버그가 있는지 첫 문단만 실행되네? 추후 수정될 가능성 있음.
SPC m e b
버퍼 전체 실행하기(eval buffer). 이건 잘 돌아감.
S b
선택 영역을 괄호(braces)로 둘러싸기
z M
모든 헤드라인 폴딩
z R
모든 헤드라인 폴딩 열기

프로그래밍 관련

g c
선택 영역을 주석(commenting)으로 처리하거나 혹은 해제(uncommenting) (evil-nerd-commenter)
SPC c d
레퍼런스로 이동(Look up reference)
=
선택영역 들여쓰기(indentation) 정리
]e
Next Error
[e
Previous Error
SPC c x
List Errors

Org Mode 공통

SPC m t
TO DO 마크 (띄어서 쓴 이유는 org agenda에 안 걸리게 하기 위함)
SPC m p
우선순위(priority)
SPC n s
노트(org) 검색
SPC n r f
Org Roam 문서 제목으로 파일 열기

Org Mode 테이블 스프레드시트

SPC m b h
테이블에서 커서 위치의 필드 정보 org-table-field-info
C-c }
테이블 필드 정보 오버레이 토글 org-table-toggle-coordinate-overlays

프로파일러(profiler)

SPC h T
Toggle Profiler