기본 조작법

Ctrl-G 중요합니다.

기호
CtrlC-
MetaM-
SuperS-
HyperH-
EnterRET
SpaceSPC
F1
상하좌우///
마우스
X (eXtend) command.
C-xCharacter eXtend. Followed by one character.
M-xNamed command eXtend. Followed by a long name.

필수 조작법

필수단축키
중단C-g
파일 열기C-x C-ffind-file
저장하기C-x C-ssave-buffer
저장하기(다른이름)C-x C-wwrite-file
종료C-x C-csave-buffers-kill-terminal
명령어 실행M-x 명령어

이동

C-이동단축키
문자 앞(forward)C-fforward-char
문자 뒤(back)C-bbackward-char
라인 위(previous-line)C-pprevious-line
라인 아래(next-line)C-nnext-line
라인 앞C-abeginning-of-line
라인 뒤C-eend-of-line
M-이동단축키
단어 앞(forward)M-fforward-word
단어 뒤(back)M-bbackward-word
문단 앞M-abackward-sentence
문단 뒤M-eforward-sentence
라인으로 이동M-g M-g 라인

emacs-movement.png

튜토리얼 시작

위에 필수과 이동을 잘 숙지 후, M-x help-with-tutorial-spec-languageKorean을 입력하시면 한글로 튜토리얼을 볼 수 있습니다.

기타

삭제

이동단축키이동단축키
C-k현재 커서에서 라인 끝까지 삭제M-k버퍼 삭제
이전 문자 지우기<Del>이전 단어 지우기M-<Del>
다음 문자 지우기C-d다음 단어 지우기M-d

복사, 붙여넣기, 되돌리기

복사, 붙여넣기, 되돌리기단축키
마크: 설정C-<SPC>
마크: 전체C-x h
마크: 복사M-w
마크: 잘라내기C-w
붙여넣기C-y
되돌리기C-x u
되돌리기C-/

확대축소

확대축소단축키
확대C-x C--
축소C-x C-=
자동줄바꿈(껏다 켰다)C-x x ttoggle-truncate-lines

검색

검색단축키
정방향C-s
역방향C-r
정방향(정규표현식)C-M-s
역방향(정규표현식)C-M-r
바꾸기M-%
바꾸기(정규표현식)C-M-%

헬프

설명단축키함수
정보보기C-h iinfo
키 확인(간단히)C-h cdescribe-key-briefly
키 확인(자세히)C-h kdescribe-key
최근에 입력한 키 보기C-h l 혹은 l
단축키 보기(모두)C-h b
단축키 보기(C-x로 시작하는 것만)C-x C-h 혹은 C-x
단축키 보기(사용자 정의)C-c C-h 혹은 C-c

shell

  • https://unix.stackexchange.com/a/180129
    • M-x shell
      • {grep, du, ls, sort, cat, head, tail, uname, ...}와 같은 클래식/표준 Unix 쉘 명령의 일반적인 사용에 적합합니다.
    • M-x term & M-x ansi-term
      • ssh나 기타 명령줄 대화형 인터페이스(예: {python, ruby, lisp} 셸) 또는 {vim, synaptic, …}과 같은 텍스트 기반 GUI 앱을 실행하려는 경우에 좋습니다.
    • M-x eshell
      • eshell은 emacs lisp에 직접 액세스할 수 있기 때문에 bash가 설치되지 않은 Microsoft Windows에서 특히 좋습니다. 또는 emacs lisp 프로그래머라면 더욱 좋습니다.

버퍼, 윈도우, 프레임, 탭

버퍼윈도우를 자주 사용합니다.

버퍼

버퍼단축키
목록C-x C-b
이동C-x b
삭제C-x k
읽기전용(토클)C-x C-qread-only-mode

윈도우

윈도우프레임
현재창 닫기C-x 0C-x 5 0C-x t 0
다른창 닫기C-x 1C-x 5 1C-x t 1
새로만들기C-x 2C-x 5 2C-x t 2
새로만들기(우측)C-x 3
다음으로 이동C-x oC-x 5 oC-x t o
파일 열기C-x C-fC-x 5 C-fC-x t C-f
파일 열기(읽기전용)C-x C-rC-x 5 rC-x t C-r

모드

  • 주(매이져, Major)모드와 보조(마이너, Minor)모드가 있습니다.
    • M-x describe-mode RET 으로 확인 할 수 있습니다.

키고 끄기

모드를 키고 끄는건 +1 혹은 -1을 사용하도록 합니다.

(display-time-mode +1) ; 시간 켜기
(display-time-mode -1) ; 시간 끄기 (0포함 음수면 끄기)

예)

  • elisp파일을 열고 M-x prettify-symbols-mode RET으로 한 다음,
  • M-x describe-mode RET를 입력하면 매이저/마이너 모드를 확인 할 수 있습니다.
    • 매이저 ELisp/d는 elisp-mode.el 정의되어있고,
    • 마이너 모드는 Auto-Save, Eldoc, Font-Lock, 그리고 아까 활성화시킨 Prettify-Symbols 가 활성되어있습니다.
;; emacs-lisp-mode는 lisp-data-mode를
;; lisp-data-mode는 prog-mode(programming mode)를
;; prog-mode는 fundamental-mode를 상속받고 있습니다.

;; emacs-lisp-mode
;;   -|> lisp-data-mode
;;     -|> prog-mode
;;       -|> fundamental-mode

;; 그리고 lisp-data-mode는 다음 prettify-symbols-alist를 가지고 있다.
;; alist란 association list(연관리스트)의 약자로, (key . value)의 리스트이다.
(defconst lisp-prettify-symbols-alist '(("lambda"  . ?λ))
  "Alist of symbol/\"pretty\" characters to be displayed.")

;; prettify-symbols-mode를 활성시켰으므로
;; emacs-lisp-mode인 .el파일에서 lambda를 입력하면 λ로 바뀐다.

defun

C-x f hello.el로 초기화 파일을 열어봅시다.

defun함수 정의
interactive함수를 M-x로 실행할 수 있게 함
;; init.el --- Emacs configuration
;; `C-M-x` 평가하기

;; 다음 함수를 작성하여 함수를 평가하여 정의합니다.
(defun hello ()
  (message "Hello World"))

;; 다음 폼(form)을 평가하면 하단에 "Hello World"가 출력됩니다.
(hello)

;; (interactive)를 추가하면, `M-x hello`로 함수를 실행할 수 있습니다.
(defun hello ()
  (interactive)
  (message "Hello World"))

참고