Emacs 도움말
목적
이 문서는 Emacs를 처음 쓰거나, 기존 편집기 대신 Emacs에서 문서와 코드를 다루려는 사용자를 위한 공개 도움말이다.
환경마다 달라지는 값은 모두 예시 경로와 예시 이름으로 표시한다.
공개 예시 설정
Emacs 설치와 설정에 필요한 실행 파일은 공용 자료로 하나씩 제공한다. 각 파일을 따로 내려받아 같은 폴더에 둔다.
| 구분 | 다운로드 |
|---|---|
| 안내 파일 | README.md |
| 공개 init 예시 | emacs-modern-init.el |
| 설치 Python 본체 | install-emacs.py |
| 설치 shell wrapper | install-emacs.sh |
예시 파일을 실제 ~/.emacs.d/init.el 로 사용할 때는 파일 상단의
User settings 블록을 먼저 자기 환경에 맞게 바꾼다.
설치부터 설정까지
한 번에 설치하기
먼저 작업 폴더를 만들고 필요한 파일을 같은 폴더에 내려받는다. 터미널에서
받을 때는 HAIDOX_SITE 에 현재 접속한 사이트 주소를 적는다.
mkdir -p emacs-setup cd emacs-setup HAIDOX_SITE="https://example.com" curl -fLO "$HAIDOX_SITE/portal/files/emacs/README.md" curl -fLO "$HAIDOX_SITE/portal/files/emacs/emacs-modern-init.el" curl -fLO "$HAIDOX_SITE/portal/files/emacs/install-emacs.py" curl -fLO "$HAIDOX_SITE/portal/files/emacs/install-emacs.sh" chmod +x install-emacs.sh
브라우저로 받을 때도 위 표의 네 파일을 같은 emacs-setup 폴더에 저장한 뒤
install-emacs.sh 에 실행 권한을 준다.
cd emacs-setup
chmod +x install-emacs.sh
기본 실행은 현재 상태와 실행할 명령만 보여 주며, 파일을 바꾸거나 패키지를 설치하지 않는다.
./install-emacs.sh --check
실제로 Emacs와 기본 도구를 설치하고 예시 init.el 을 적용하려면
--apply 를 붙인다.
./install-emacs.sh --apply
Python 자동완성용 가상환경까지 함께 만들려면 다음처럼 실행한다.
가상환경은 기본으로 ~/.emacs.d/python-tools 에 만들어지고, Emacs가 그
도구를 찾도록 ~/.emacs.d/local.el 에 관리 블록을 추가한다.
./install-emacs.sh --apply --setup-python-venv
Codex CLI까지 함께 설치하려면 Node.js와 npm이 필요하다. 설치 스크립트가 npm을 찾을 수 있는 환경에서 다음처럼 실행한다.
./install-emacs.sh --apply --setup-python-venv --install-codex
기존 ~/.emacs.d/init.el 이 있으면 스크립트가 timestamp가 붙은 백업을
만든 뒤 새 설정을 복사한다.
수동 설치
Ubuntu/Debian 계열에서는 다음 패키지를 먼저 설치한다.
sudo apt update sudo apt install -y emacs git ripgrep python3-pip python3-venv nodejs npm default-jre plantuml
Fedora 계열에서는 다음 명령을 사용한다.
sudo dnf install -y emacs git ripgrep python3-pip nodejs npm java-latest-openjdk plantuml
Arch 계열에서는 다음 명령을 사용한다.
sudo pacman -S --needed emacs git ripgrep python python-pip nodejs npm jre-openjdk plantuml
macOS Homebrew 환경에서는 다음 명령을 사용한다.
brew install emacs git ripgrep python node plantuml
Python과 가상환경 설정
Python 자동완성, 진단, 포맷터를 사용자 환경과 분리하려면 Emacs 전용 가상환경을 만든다.
python3 -m venv ~/.emacs.d/python-tools ~/.emacs.d/python-tools/bin/python -m pip install --upgrade pip basedpyright ruff
Emacs가 가상환경 안의 basedpyright-langserver 와 ruff 를 찾게 하려면
~/.emacs.d/local.el 에 다음 내용을 넣는다.
(let ((venv-bin (expand-file-name "~/.emacs.d/python-tools/bin"))) (when (file-directory-p venv-bin) (setenv "PATH" (concat venv-bin path-separator (getenv "PATH"))) (add-to-list 'exec-path venv-bin)))
설치 스크립트의 --setup-python-venv 옵션은 위 작업을 한 번에 처리한다.
init.el 설정하기
다운로드한 폴더에서 공개 예시 설정을 복사한다.
mkdir -p ~/.emacs.d cp emacs-modern-init.el ~/.emacs.d/init.el
그 뒤 ~/.emacs.d/init.el 맨 위의 User settings 블록을 자기 환경에
맞게 수정한다.
주로 바꾸는 값:
| 변수 | 의미 | 예시 |
|---|---|---|
example-user-full-name |
사용자 이름 | "Example User" |
example-user-mail-address |
사용자 이메일 | "user@example.com" |
example-default-input-method |
Emacs 안에서 쓸 기본 입력기 | "korean-hangul" |
example-input-toggle-key |
Emacs 한영 전환 키 | C-\ |
example-project-search-path |
프로젝트를 찾을 기본 폴더 | '("~/projects" "~/documents") |
example-codex-command |
Codex CLI 실행 파일 경로 | (executable-find "codex") |
example-plantuml-jar-path |
PlantUML jar 경로 | "~/tools/plantuml.jar" |
example-local-file |
개인 override 파일 경로 | "~/.emacs.d/local.el" |
예시:
(setq example-user-full-name "Example User" example-user-mail-address "user@example.com" example-default-input-method "korean-hangul" example-input-toggle-key "C-\\" example-project-search-path '("~/projects" "~/documents") example-codex-command (executable-find "codex") example-plantuml-jar-path "~/tools/plantuml.jar" example-local-file "~/.emacs.d/local.el")
Codex를 설치했지만 Emacs에서 찾지 못하면 example-codex-command 에 실행
파일의 전체 경로를 적는다.
(setq example-codex-command "/path/to/codex")
개인 값이 많아지면 공개 예시 파일을 직접 고치기보다 ~/.emacs.d/local.el
에 override를 따로 적고, example-local-file 값만 유지해도 된다.
선택 도구 설치
Python 도구를 가상환경이 아니라 사용자 Python 환경에 직접 설치하려면 다음 명령을 사용할 수 있다.
python3 -m pip install --user --upgrade basedpyright ruff
Codex CLI를 npm으로 설치할 수 있는 환경이면 다음 명령을 사용한다.
npm install -g @openai/codex
설치 뒤 다음 명령으로 확인한다.
emacs --version rg --version python3 --version node --version npm --version codex --version
추가 확인 작업
처음 Emacs를 실행하면 설정 파일이 필요한 패키지를 자동으로 내려받을 수
있다. 네트워크가 막힌 환경이라면 패키지 설치가 실패할 수 있으므로,
인터넷 연결을 확인한 뒤 Emacs 안에서 M-x package-refresh-contents 를
먼저 실행한다.
PlantUML을 jar 파일로 직접 사용할 때는 example-plantuml-jar-path 에
jar 경로를 적는다. OS 패키지의 plantuml 명령만 사용할 때는 이 값을
비워 두거나 개인 local.el 에서 환경에 맞게 덮어쓴다.
전체 구성
Emacs는 다음 작업을 한곳에서 처리할 수 있는 편집기다.
- 파일과 프로젝트 탐색
- 검색과 이동
- 문서 작성
- 코드 편집과 자동완성
- Git 작업
- 터미널 실행
- Org 문서 작성과 출판
- 외부 도구 연동
실제 설치된 패키지와 단축키는 각 사용자의 설정에 따라 다를 수 있다. 이 문서는 일반적으로 많이 쓰는 구성과 대표 단축키를 기준으로 설명한다.
기본 표기
Emacs 단축키 표기에서 C- 는 Ctrl 키를, M- 는 Alt 또는 Meta
키를 뜻한다.
| 표기 | 누르는 키 |
|---|---|
C-g |
Ctrl + g |
C-x C-s |
Ctrl + x, 이어서 Ctrl + s |
M-x |
Alt + x |
C-\ |
Ctrl + \ |
명령 입력 도중 빠져나오고 싶으면 먼저 C-g 를 누른다.
가장 먼저 익힐 조작
| 기능 | 키 | 설명 |
|---|---|---|
| 명령 취소 | C-g |
실행 중인 명령, 입력 대기, 미니버퍼를 취소 |
| 저장 | C-x C-s |
현재 파일 저장 |
| 파일 열기 | C-x C-f |
파일 경로를 입력하거나 찾아서 열기 |
| 버퍼 전환 | C-x b |
이미 열린 파일이나 화면으로 이동 |
| 버퍼 닫기 | C-x k |
현재 버퍼 닫기 |
| Emacs 종료 | C-x C-c |
Emacs 종료 |
| 되돌리기 | C-/ 또는 C-_ |
방금 한 편집을 되돌림 |
| 전체 선택 | C-x h |
현재 버퍼 전체 선택 |
| 영역 선택 시작 | C-SPC |
현재 위치부터 선택 시작 |
| 복사 | M-w |
선택 영역 복사 |
| 잘라내기 | C-w |
선택 영역 잘라내기 |
| 붙여넣기 | C-y |
복사하거나 잘라낸 내용 붙여넣기 |
| 한영 전환 | C-\ |
Emacs 내부 입력기를 한글/영문으로 전환 |
복사와 붙여넣기 기본 흐름:
C-SPC로 선택을 시작한다.- 방향키나 이동 키로 영역을 고른다.
M-w로 복사하거나C-w로 잘라낸다.- 붙여넣을 위치에서
C-y를 누른다.
한영 전환
공개 예시 init.el 은 Emacs 내부 입력기를 korean-hangul 로 설정하고,
C-\ 키로 한글 입력과 영문 입력을 전환한다.
| 기능 | 키 | 설명 |
|---|---|---|
| 한영 전환 | C-\ |
Emacs 내부 입력기 켜기/끄기 |
| 입력기 선택 | C-u C-\ |
다른 Emacs 입력기 선택 |
| 현재 키 확인 | C-h k C-\ |
한영 전환 키에 연결된 명령 확인 |
OS의 한영 키, fcitx, ibus, macOS 입력 소스처럼 운영체제 입력기를 그대로
써도 된다. 다만 운영체제 입력기를 쓰면 Emacs 밖의 앱과 입력 상태가 함께
바뀌고, C-\ 를 쓰면 Emacs 안에서만 입력 상태가 바뀐다.
전환 키를 바꾸고 싶으면 ~/.emacs.d/init.el 상단의
example-input-toggle-key 값을 바꾼다.
Emacs Lisp 문자열에서는 백슬래시를 한 번 더 적기 때문에, 실제 설정
파일에는 "C-\\" 처럼 쓴다.
(setq example-default-input-method "korean-hangul" example-input-toggle-key "C-\\")
명령과 도움말
| 기능 | 키 | 설명 |
|---|---|---|
| 명령 실행 | M-x |
명령 이름을 입력해 실행 |
| 키 설명 보기 | C-h k |
키를 누르면 연결된 명령 설명 |
| 명령 설명 보기 | C-h f |
함수나 명령 설명 |
| 변수 설명 보기 | C-h v |
변수 설명 |
| 현재 모드 도움말 | C-h m |
현재 major/minor mode 설명 |
| 현재 키 바인딩 보기 | C-h b |
현재 버퍼에서 쓸 수 있는 키 목록 |
| 튜토리얼 열기 | C-h t |
Emacs 기본 튜토리얼 |
어떤 키가 무슨 일을 하는지 모를 때는 C-h k 를 누른 뒤 확인할 키를
입력한다.
파일과 버퍼
Emacs에서는 파일을 열면 그 내용이 버퍼에 표시된다. 버퍼는 파일일 수도 있고, 명령 결과나 도움말 화면일 수도 있다.
| 기능 | 키 | 설명 |
|---|---|---|
| 파일 열기 | C-x C-f |
파일 경로를 입력해 열기 |
| 저장 | C-x C-s |
현재 버퍼 저장 |
| 다른 이름으로 저장 | C-x C-w |
파일명을 바꿔 저장 |
| 수정된 버퍼 저장 | C-x s |
저장할 버퍼를 차례로 확인 |
| 버퍼 전환 | C-x b |
열린 버퍼로 이동 |
| 버퍼 목록 보기 | C-x C-b |
버퍼 목록 표시 |
| 현재 버퍼 닫기 | C-x k |
현재 버퍼 kill |
예시 파일 경로:
~/documents/example.org /path/to/project/README.md /path/to/project/src/example.py
커서와 화면 이동
| 기능 | 키 | 설명 |
|---|---|---|
| 왼쪽/오른쪽/위/아래 | C-b / C-f / C-p / C-n |
한 칸 또는 한 줄 이동 |
| 줄 처음/끝 | C-a / C-e |
현재 줄의 처음이나 끝으로 이동 |
| 단어 단위 이동 | M-b / M-f |
이전 또는 다음 단어로 이동 |
| 문단 단위 이동 | M-{ / M-} |
이전 또는 다음 문단으로 이동 |
| 버퍼 처음/끝 | M-< / M-> |
문서 처음이나 끝으로 이동 |
| 지정 줄로 이동 | M-g g |
줄 번호 입력 후 이동 |
| 화면 아래/위 | C-v / M-v |
다음 또는 이전 화면 보기 |
| 현재 줄 위치 조정 | C-l |
현재 줄을 화면 중앙, 위, 아래로 이동 |
선택과 편집
| 기능 | 키 | 설명 |
|---|---|---|
| 영역 선택 시작 | C-SPC |
mark를 찍고 커서를 움직여 선택 |
| 전체 선택 | C-x h |
현재 버퍼 전체 선택 |
| 복사 | M-w |
선택 영역 복사 |
| 잘라내기 | C-w |
선택 영역 잘라내기 |
| 붙여넣기 | C-y |
kill ring에서 붙여넣기 |
| 이전 붙여넣기 후보 | M-y |
C-y 직후 이전 항목으로 교체 |
| 되돌리기 | C-/ 또는 C-_ |
undo |
| 커서 앞 글자 삭제 | DEL 또는 Backspace |
앞 글자 삭제 |
| 커서 뒤 글자 삭제 | C-d |
뒤 글자 삭제 |
| 줄 끝까지 잘라내기 | C-k |
커서부터 줄 끝까지 삭제 |
| 다음 단어 삭제 | M-d |
다음 단어 삭제 |
| 이전 단어 삭제 | M-DEL |
이전 단어 삭제 |
검색과 치환
| 기능 | 키 | 설명 |
|---|---|---|
| 앞으로 검색 | C-s |
incremental search |
| 뒤로 검색 | C-r |
역방향 incremental search |
| 검색 중 다음/이전 | C-s / C-r |
검색 상태에서 반복 이동 |
| 검색 종료 | RET |
현재 위치에 커서 확정 |
| 검색 취소 | C-g |
검색 전 위치로 돌아감 |
| 문자열 치환 | M-% |
query-replace |
| 정규식 치환 | C-M-% |
query-replace-regexp |
프로젝트 전체 검색은 사용 중인 설정에 따라 consult-ripgrep,
projectile-ripgrep, grep 같은 명령을 사용할 수 있다.
창 나누기
| 기능 | 키 | 설명 |
|---|---|---|
| 창 위아래 분할 | C-x 2 |
현재 창을 위아래로 나눔 |
| 창 좌우 분할 | C-x 3 |
현재 창을 좌우로 나눔 |
| 다른 창으로 이동 | C-x o |
다음 창 선택 |
| 현재 창만 남기기 | C-x 1 |
다른 창 닫기 |
| 현재 창 닫기 | C-x 0 |
선택된 창 닫기 |
관리자 권한 파일 열기
시스템 파일을 편집해야 할 때는 sudo emacs 로 Emacs 전체를 관리자
권한으로 실행하기보다, 일반 Emacs에서 TRAMP sudo 경로로 필요한 파일만
연다.
/sudo::/path/to/system-file
예:
/sudo::/etc/example/example.conf /sudo::/etc/example/example.service
이 방식은 현재 사용자 Emacs 설정을 유지하면서 저장할 때만 관리자 권한을 사용한다.
프로젝트 탐색
프로젝트 관리 패키지를 쓰면 현재 프로젝트 안에서 파일 찾기, 검색, 명령 실행을 빠르게 할 수 있다.
| 기능 | 예시 키 |
|---|---|
| 프로젝트 명령 메뉴 | C-c p |
| 프로젝트 전환 | C-c p p |
| 프로젝트 파일 찾기 | C-c p f |
| 프로젝트 검색 | C-c p s r |
파일 트리 패키지를 사용하는 경우 다음과 같은 키를 둘 수 있다.
| 기능 | 예시 키 |
|---|---|
| 파일 트리 열기/닫기 | C-x t t |
| 파일 트리 창으로 이동 | M-0 |
| 특정 디렉터리 열기 | C-x t d |
| 현재 파일 위치 찾기 | C-x t f |
Dired 파일 관리자
Dired는 Emacs 안에서 디렉터리를 파일 관리자처럼 다루는 기본 기능이다.
| 기능 | 키 |
|---|---|
| Dired 열기 | C-x d |
| 상위 디렉터리 | ^ |
| 파일 열기 | RET |
| 파일 표시 | m |
| 표시 해제 | u |
| 삭제 | D |
| 이름 변경/이동 | R |
| 복사 | C |
삭제나 이동 명령은 실제 파일에 영향을 주므로 대상 파일을 확인한 뒤 실행한다.
자동완성
자동완성은 사용하는 설정에 따라 corfu, company, completion-at-point
등으로 제공될 수 있다.
일반적인 흐름:
- 글자를 입력하면 자동완성 후보가 뜬다.
TAB또는 방향키로 후보를 고른다.RET로 후보를 삽입한다.
스니펫 패키지를 사용하는 경우 스니펫 이름을 입력한 뒤 TAB 으로
템플릿을 펼칠 수 있다.
Python 개발
Python 개발에는 LSP 서버와 포맷터를 함께 쓰면 편하다.
대표 LSP 서버:
pip install basedpyright
또는:
pip install pyright
대표 포맷터:
pip install ruff
자주 쓰는 기능:
| 기능 | 예시 키 |
|---|---|
| 코드 액션 | C-c l a |
| 심볼 이름 변경 | C-c l r |
| LSP 포맷 | C-c l f |
| 다음 진단으로 이동 | C-c ! n |
| 이전 진단으로 이동 | C-c ! p |
| 현재 버퍼 진단 목록 | C-c ! l |
프로젝트 명령 예시는 환경에 맞게 경로를 바꿔 실행한다.
cd /path/to/project
python -m pip install -r requirements.txt
python manage.py check
python manage.py test
Git과 GitHub
Git 작업은 magit 같은 Emacs Git 패키지로 처리할 수 있다.
| 기능 | 키 |
|---|---|
| Magit 상태창 | C-x g |
| 변경 파일 stage | s |
| unstage | u |
| 커밋 작성 | c c |
| 커밋 완료 | C-c C-c |
| push | P p |
| pull | F p |
| 브랜치 전환 | b b |
| 로그 보기 | l l |
GitHub PR이나 Issue 연동은 forge 같은 패키지를 사용할 수 있다.
처음 사용할 때는 각 서비스의 인증 설정이 필요하다.
터미널과 명령 실행
Emacs 안에서 터미널을 열면 편집 중인 프로젝트 위치에서 명령을 바로 실행할 수 있다.
| 기능 | 예시 키 |
|---|---|
| 터미널 열기 | C-c ' |
| 대체 터미널 열기 | C-c e |
| 현재 프로젝트에서 터미널 열기 | C-c E |
| compile 실행 | C-c c |
| 마지막 compile 재실행 | C-c C-c |
명령 예시:
cd /path/to/project
make test
python -m pytest
AI 도구 연동
Emacs에서는 설정에 따라 대화형 AI, 코드 보조, CLI 기반 코드 도구를 연동할 수 있다.
환경변수나 API 키가 필요한 도구는 실제 값을 문서에 쓰지 않는다. 쉘이나 운영체제의 비밀값 관리 방식에 등록하고, 공개 문서에는 다음처럼 예시만 둔다.
export EXAMPLE_API_KEY="replace-with-your-secret"
대화형 AI 패키지 예시:
| 기능 | 예시 키 |
|---|---|
| 대화 버퍼 열기 | C-c q a |
| 선택 영역 보내기 | C-c q s |
| 메뉴 열기 | C-c q m |
CLI 기반 코드 도구 예시:
| 기능 | 예시 키 |
|---|---|
| 대화형 실행 | C-c q c |
| 비대화형 실행 | C-c q e |
| 코드 리뷰 실행 | C-c q r |
| 진단 실행 | C-c q d |
실행 파일 경로가 필요한 경우에는 설정 파일에 예시 경로를 넣고, 각자 환경에 맞게 바꾼다.
(setq example-cli-command "/path/to/example-cli")
코드 제안 도구
코드 제안 도구는 별도 설치와 로그인이 필요할 수 있다. 사용하는 서비스의 공식 안내에 따라 설치하고, 인증 정보는 공개 문서나 저장소에 남기지 않는다.
예시 명령:
M-x example-tool-install M-x example-tool-login M-x example-tool-diagnose
설치 후에는 주로 프로그래밍 모드나 문서 작성 모드에서 제안이 표시된다. 제안 수락 키는 각 패키지 설정을 확인한다.
Org 문서 작업
Org는 메모, 문서, TODO, 표, 코드 블록을 함께 다룰 수 있는 Emacs 문서 형식이다. Org 문서 작성법과 주요 단축키는 별도 도움말에 정리되어 있다.
Emacs 기본 조작을 먼저 익힌 뒤 Org 문법, 제목 접기, 표, 링크, 코드 블록, Agenda, Capture가 필요할 때 위 문서를 참고한다.
PlantUML
PlantUML을 쓰면 텍스트로 다이어그램을 작성할 수 있다.
대표 확장자:
.puml.plantuml
SVG로 내보내는 키는 설정에 따라 다르지만, plantuml-mode 에서는
보통 export 명령을 사용한다.
jar 파일 경로가 필요한 경우 예시처럼 설정하고 실제 위치로 바꾼다.
(setq plantuml-jar-path "/path/to/plantuml.jar")
처음 설치 후 점검 순서
Emacs를 처음 설정한 뒤에는 다음 순서로 확인한다.
- Emacs가 오류 없이 시작되는지 확인한다.
- 패키지 설치가 완료되는지 확인한다.
- 파일 열기와 저장이 되는지 확인한다.
- 프로젝트 파일 찾기와 검색이 되는지 확인한다.
- Python 같은 개발 파일에서 자동완성과 진단이 동작하는지 확인한다.
- Git 상태창이 열리는지 확인한다.
- 터미널이나 compile 명령이 실행되는지 확인한다.
- AI 도구를 쓸 경우 인증과 진단 명령을 별도로 확인한다.
문제가 생겼을 때
Emacs가 시작되지 않을 때
설정 파일을 임시로 다른 이름으로 옮긴 뒤 기본 Emacs가 시작되는지 확인한다.
mv ~/.emacs.d/init.el ~/.emacs.d/init.el.backup emacs
백업 파일이 있다면 환경에 맞는 파일명으로 복원한다.
cp ~/.emacs.d/init.el.backup ~/.emacs.d/init.el
패키지 설치가 실패할 때
패키지 목록 캐시가 오래되었을 수 있다. Emacs 안에서 다음 명령을 실행한다.
M-x package-refresh-contents M-x package-install
그 뒤 Emacs를 다시 시작한다.
Python 자동완성이 안 될 때
LSP 서버와 포맷터가 설치되어 있는지 확인한다.
which basedpyright-langserver which pyright-langserver which ruff
설치되어 있지 않으면 프로젝트 가상환경이나 사용자 환경에 필요한 도구를 설치한다.
AI 도구가 안 될 때
환경변수가 Emacs 프로세스에 전달되었는지 확인한다. 예를 들어
EXAMPLE_API_KEY 라는 환경변수를 쓴다면 Emacs 안에서 다음처럼 확인할 수
있다.
M-: (getenv "EXAMPLE_API_KEY")
CLI 도구가 필요한 경우 터미널에서 진단 명령과 도움말 명령을 확인한다.
example-cli doctor example-cli --help
현재 키맵 요약
| 기능 | 키 |
|---|---|
| 명령 취소 | C-g |
| 명령 실행 | M-x |
| 도움말 | C-h k / C-h f / C-h v / C-h m |
| 되돌리기 | C-/ |
| 저장 | C-x C-s |
| 다른 이름으로 저장 | C-x C-w |
| 전체 선택 | C-x h |
| 영역 선택 시작 | C-SPC |
| 복사 | M-w |
| 잘라내기 | C-w |
| 붙여넣기 | C-y |
| 화면 아래/위 | C-v / M-v |
| 줄 처음/끝 | C-a / C-e |
| 버퍼 처음/끝 | M-< / M-> |
| 현재 버퍼 닫기 | C-x k |
| 파일 열기 | C-x C-f |
| 버퍼 전환 | C-x b |
| 검색 | C-s / C-r |
| 치환 | M-% |
| 창 분할 | C-x 2 / C-x 3 |
| 다른 창 이동 | C-x o |
| Magit | C-x g |
| Org agenda | C-c a |
| Org capture | C-c x |