Doom Emacs 단축키 정리
Emacs
//
2024년 07월 29일 작성
//
2024년 08월 05일 업데이트
이 글은 Doom Emacs에서 개인적으로 자주 사용하는 혹은 인상적이지만 잘 까먹는 단축키를 정리한다. 일부 단축키는 별도의 글로 분리하는 경우도 있으니 하단 관련글 항목을 참고하자.
설정(Configuration) 관련
단축키 |
설명 |
기타 |
SPC f p |
설정 파일 열기(즉 ~/.doom.d 에 있는 파일들 목록이 뜬다) |
|
SPC h r r |
설정 싱크(sync) 및 리로드(doom/reload ) |
|
파일, 프로젝트, 워크스페이스 관련
단축키 |
설명 |
기타 |
SPC f f |
파일 열기 |
find-file |
SPC . |
현재 디렉토리에서 파일 열기 |
생성하기도 가능 |
SPC p p |
프로젝트 전환 |
워크스페이스가 없으면 생성 |
SPC SPC |
프로젝트 파일 열기 |
|
SPC TAB . |
워크스페이스(프로젝트) 목록 및 전환 |
|
SPC TAB NUM |
NUM 숫자에 해당하는 워크스페이스로 전환 |
|
COMMAND NUM |
NUM 숫자에 해당하는 워크스페이스로 전환 |
Mac 전용 |
버퍼(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 d |
창 닫기. 창이 하나 뿐이면 프로젝트 단기 |
|
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 |
창 이동은 Evil을 쓸 경우 C-w
와 h
, j
, k
, l
을 조합하는 Vim 방식을 동일하게 사용할 수도 있다.
폴딩(Folding)
단축키 |
설명 |
기타 |
z f |
선택 영역 접기(폴딩) |
|
z a |
폴딩 토글하기 |
|
z d |
폴딩 제거하기 |
코드 삭제 아님 |
z E |
모든 폴딩 제거 |
|
z j |
다음 폴딩으로 이동 |
|
z k |
이전 폴딩으로 이동 |
|
셸(Shell) 혹은 터미널(Terminal)
템플릿(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 |
현재 커서의 단어 끝에 서브커서를 만들고 비슷한 이전 단어로 커서 이동 |
|
특수 텍스트 변환
단축키 |
설명 |
기타 |
! |
연관 텍스트로 변환 |
rotate-text |
연관 텍스트라는 것은 좀 특수한 경우인데, 예를 들어 C++에서 public
- private
- protected
등의 관계를 생각하면 될 것 같다.
Emacs Lisp 관련
단축키 |
설명 |
기타 |
SPC : |
함수 실행하기(Emacs 의 M-x 와 동일). 콜론 주의. |
|
SPC ; |
명령 실행하기(eval expression). 세미콜론임에 주의 |
|
SPC m e r |
Lisp Mode에서 선택 영역 실행하기(eval region). |
|
SPC m e b |
Lisp Mode에서 버퍼 전체 실행하기(eval buffer). |
|
S b |
선택 영역을 괄호(braces)로 둘러싸기 |
|
z M |
모든 헤드라인 폴딩 |
|
z R |
모든 헤드라인 폴딩 열기 |
|
프로그래밍 관련
단축키 |
설명 |
기타 |
g c |
영역을 주석처리(comment) 혹은 주석해제(uncomment) (Vim 스타일) |
|
SPC a ; |
영역을 주석처리(comment) 혹은 주석해제(uncomment) (Doom Emacs 스타일) |
|
SPC c d |
레퍼런스로 이동(Look up reference) |
|
= |
선택영역 들여쓰기(indentation) 정리 (Vim 스타일) |
|
]e |
Next Error |
|
[e |
Previous Error |
|
SPC c x |
List Errors |
|
Org Mode 공통
단축키 |
설명 |
기타 |
SPC m t |
TODO 마크 |
|
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 |
|
관련된 글들