Doom Emacs 단축키
2024년 7월 30일 수정
≡ 목차 (Table of Contents)
이 글은 더이상 관리되지 않으며 대신 ⏍https://seorenn.github.io/article/doom-emacs-shortcuts.html 주소의 글이 주기적으로 관리될 예정입니다.
이 글은 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
