EMACS 빠른 참조
탐색, 편집, 버퍼, 검색, org mode, 패키지
탐색
커서 이동
| C-f / C-b | 앞/뒤로 한 문자 |
| M-f / M-b | 앞/뒤로 한 단어 |
| C-n / C-p | 다음 / 이전 줄 |
| C-a / C-e | 줄 시작 / 끝 |
| M-a / M-e | 문장 시작 / 끝 |
| C-v / M-v | 한 페이지 아래 / 위로 스크롤 |
| M-< / M-> | 버퍼 시작 / 끝 |
| M-g g | 줄 번호로 이동 |
화면 위치 조정
| C-l | 화면 재중앙 (상단/중앙/하단 순환) |
| C-M-l | 휴리스틱 방식으로 창 재배치 |
편집
Kill & Yank (잘라내기 & 붙여넣기)
| C-k | 줄 끝까지 Kill |
| C-w | 영역 Kill (잘라내기) |
| M-w | 영역 복사 |
| C-y | Yank (붙여넣기) |
| M-y | Yank 후 Kill 링 순환 |
| C-d | 앞 문자 삭제 |
| M-d | 앞 단어 Kill |
| M-DEL | 뒤 단어 Kill |
실행 취소 & 전치
| C-/ or C-_ | 실행 취소 |
| C-g C-/ | 다시 실행 (취소 되돌리기) |
| C-t | 문자 전치 |
| M-t | 단어 전치 |
| C-x C-t | 줄 전치 |
선택
| C-SPC | 마크 설정 (선택 시작) |
| C-x h | 버퍼 전체 선택 |
| M-h | 단락 선택 |
| C-x C-x | 포인트와 마크 교환 |
버퍼 & 창
버퍼
| C-x b | 버퍼 전환 |
| C-x C-b | 모든 버퍼 목록 |
| C-x k | 버퍼 닫기 |
| C-x LEFT / RIGHT | 이전 / 다음 버퍼 |
창
| C-x 2 | 창 가로 분할 |
| C-x 3 | 창 세로 분할 |
| C-x 0 | 현재 창 닫기 |
| C-x 1 | 다른 창 모두 닫기 |
| C-x o | 다른 창으로 전환 |
| C-x ^ | 창 세로 확장 |
| C-x { | 창 가로 축소 |
프레임
| C-x 5 2 | 새 프레임 생성 |
| C-x 5 0 | 현재 프레임 삭제 |
| C-x 5 o | 다른 프레임으로 전환 |
검색 & 치환
증분 검색
| C-s | 앞으로 검색 (증분) |
| C-r | 뒤로 검색 (증분) |
| C-s C-s | 마지막 검색 앞으로 반복 |
| C-M-s | 정규식 앞으로 검색 |
| C-M-r | 정규식 뒤로 검색 |
| RET | 현재 위치에서 검색 종료 |
| C-g | 검색 취소, 시작 위치로 복귀 |
치환
| M-% | 쿼리 치환 |
| C-M-% | 정규식 쿼리 치환 |
| y | 현재 일치 치환 |
| n | 현재 일치 건너뛰기 |
| ! | 나머지 모두 치환 |
| q | 치환 종료 |
파일
파일 작업
| C-x C-f | 파일 찾기 (열기) |
| C-x C-s | 현재 버퍼 저장 |
| C-x C-w | 다른 이름으로 저장 |
| C-x s | 수정된 모든 버퍼 저장 |
| C-x C-r | 읽기 전용으로 파일 열기 |
| C-x i | 포인트에 파일 내용 삽입 |
Dired (디렉터리 편집기)
| C-x d | Dired로 디렉터리 열기 |
| d / x | 삭제 플래그 / 삭제 실행 |
| R | 파일 이름 변경 / 이동 |
| C | 파일 복사 |
| + | 디렉터리 생성 |
| g | 목록 새로고침 |
모드
주 모드
| M-x fundamental-mode | 일반 텍스트 편집 |
| M-x text-mode | 채우기 및 맞춤법 포함 텍스트 |
| M-x prog-mode | 프로그래밍 모드 기반 |
| M-x python-mode | Python 편집 및 들여쓰기 |
| M-x shell-mode | 버퍼 내 대화형 셸 |
유용한 보조 모드
| M-x display-line-numbers-mode | 줄 번호 토글 |
| M-x auto-fill-mode | 채우기 열에서 자동 줄 바꿈 |
| M-x flyspell-mode | 실시간 맞춤법 검사 |
| M-x column-number-mode | 모드 줄에 열 번호 표시 |
| M-x whitespace-mode | 공백 시각화 |
| M-x electric-pair-mode | 괄호 및 따옴표 자동 닫기 |
Org Mode 기본
구조
| * / ** / *** | 제목 레벨 1 / 2 / 3 |
| TAB | 제목 가시성 순환 |
| S-TAB | 전체 가시성 순환 |
| M-RET | 같은 레벨 제목 삽입 |
| M-LEFT / M-RIGHT | 제목 레벨 올리기 / 내리기 |
| M-UP / M-DOWN | 서브트리 위 / 아래로 이동 |
TODO & 체크박스
| C-c C-t | TODO 상태 순환 |
| C-c C-d | 마감 기한 설정 |
| C-c C-s | 일정 예약 |
| C-c C-c | 체크박스 [ ] / [X] 토글 |
| C-c a | 일정 뷰 열기 |
링크 & 내보내기
| C-c C-l | 링크 삽입 / 편집 |
| C-c C-o | 포인트의 링크 열기 |
| C-c C-e | 내보내기 디스패처 (HTML, PDF 등) |
패키지 관리
package.el
| M-x list-packages | 사용 가능한 패키지 탐색 |
| i / d / x | 설치 / 삭제 표시 / 실행 |
| U | 업그레이드 가능한 모두 표시 |
| M-x package-refresh-contents | 패키지 목록 새로고침 |
use-package (init.el)
(use-package magit
:ensure t
:bind ("C-x g" . magit-status))
(use-package company
:ensure t
:hook (prog-mode . company-mode))
설정
주요 설정 파일
| ~/.emacs.d/init.el | 메인 설정 파일 |
| ~/.emacs.d/early-init.el | 초기 초기화 (GUI 이전, Emacs 27+) |
| ~/.emacs.d/custom.el | Customize로 작성된 설정 |
공통 설정
(setq inhibit-startup-screen t)
(tool-bar-mode -1)
(set-face-attribute 'default nil :height 120)
(global-display-line-numbers-mode 1)
(setq make-backup-files nil)
도움말 시스템
| C-h k | 키 바인딩 설명 |
| C-h f | 함수 설명 |
| C-h v | 변수 설명 |
| C-h m | 현재 모드 설명 |
| C-h t | Emacs 튜토리얼 열기 |
| C-h i | Info 문서 열기 |
일반 패턴
사각형 편집
| C-x SPC | 사각형 마크 모드 시작 |
| C-x r k | 사각형 Kill |
| C-x r y | 사각형 Yank |
| C-x r t | 사각형을 문자열로 치환 |
| C-x r o | 빈 사각형 삽입 |
매크로
| C-x ( | 매크로 녹화 시작 |
| C-x ) | 매크로 녹화 중지 |
| C-x e | 마지막 매크로 실행 |
| C-u 10 C-x e | 매크로 10회 실행 |
| M-x name-last-kbd-macro | 재사용을 위한 매크로 이름 지정 |
셸 & 평가
| M-x shell | 버퍼 내 셸 열기 |
| M-x eshell | Emacs Lisp 셸 |
| M-! | 셸 명령 실행 |
| M-x eval-buffer | 버퍼 전체를 Elisp로 평가 |
| C-x C-e | 포인트 앞 Elisp 표현식 평가 |