본문 바로가기

Editor/Emacs

Emacs 단축키 (한글)

--------------------
일반키
--------------------

o Meta 키 : Alt 키 또는 ESC 키

o 커서이동 : 위(C-p), 아래(C-n), 왼쪽(C-b), 오른쪽(C-f)

  C-l : 현재줄을 가운데로

  C-a : 줄의 시작, C-e : 줄의 끝
  C-v : 페이지이동 (M-v)
  M-< : 문서시작, M-> : 문서끝

  M-x goto-line n RET : n 라인으로 이동

  M-x goto-char n RET : n 번째 문자로 이동

o 반복 : C-u [number] ...

o 중지 : C-g

o 삭제 : C-d 다음문자삭제 Del : 이전문자삭제
         C-k 현재줄 끝까지 지우기

o 붙이기 : C-y

o 취소 :  C-x-u

o 파일찾기 : C-x C-f

o 저장 : C-x C-s

o 버퍼보기 : C-x C-b

o 버퍼전환 : C-x b

o 버퍼죽이기 : C-x k

o 쉘모드 : C-z

o 끝내기 : C-x C-c

o F10 : emacs 메뉴

o M-: : 간단한 lisp 명령 실행

--------------------
창관련
--------------------

o 창하나로 : C-x 1

o 창나누기 : C-x 2 (가로로), C-x 3 (세로로)

o 창전환 : C-x o

o 창크기바꾸기 : C-x ^ (크게),

                 C-x { (가로로크게), C-x } (가로로 작게)

o 창닫기 : C-x 0

o 스크롤 : C-x < (좌로스크롤), C-x > (우로 스크롤)

o 수평스크롤모드 : M-x hscroll-mode 또는 M-x hscroll-global-mode (전제버퍼에
                                                                  영향)

o 다른창에서 파일열기 : C-x 4 C-f

o 다른창에서 버퍼열기 : C-x 4 b

--------------------
편집
--------------------

o 문자열바꾸기 : M-x replace-string

o 찾기 : C-s , C-r (뒤로찾기)

o regexp 검색 : C-M-s

o 마크(Mark) : C-SPC 또는 C-@

o 마크까지 삭제 : C-w

o 마크까지 저장 : M-w

o 붙여넣기(Yank) : C-y

o 직사각형영역(rectangle) 삭제 : C-x r k

o 직사각형영역 yank : C-x r y

o 직사각형영역을 스페이스로 : M-x clear-rectangle

o TAB STOP : M-x edit-tab-stops

            ( TAB 이 멈출 위치에 ":" 을 놓는다. )

o 탭을 공백으로 : M-x untabify

o 공백을 탭으로 : M-x tabify

o 디폴트 탭 간격 : (setq default-tab-width 4)

o 영역만 보이게 하기 : 편집시에 영역 외에는 편집할 수 없도록 하기 위해서.

              C-x n n

o 모두 보이게 하기 : C-x n w

o 줄체인지 : 두 줄의 위치를 서로 변경한다.

             C-x C-t

o whitespace 제거 : M-x fixup-whitespace

o ^M 문자 제거 : 특수문자는 C-q 를 먼저 누르고 C-m 식으로 누르면 된다.
                 (C-q : Quote String)

  M-x replace-string C-q C-m

  (참고 : set-file-buffer-coding-system RET euc-korea-dos RET )
            
--------------------
북마크
--------------------

o 북마크설정 : C-x r m

o 북마크로이동 : C-x r b

o 북마크리스트 : C-x r l

o 북마크삭제 : M-x bookmark-delete
              (또는 북마크리스트모드에서 D 한후 x)
 
o 북마크이름변경 : M-x bookmark-rename

--------------------
레지스트리
--------------------

o R에 저장된 것을 보인다 : M-x view-register RET R

o 포인트의 위치를 R에 저장 : C-x / R

o R 로 이동 : C-x j R

o region을 R에 복사 : C-x x R

o rectangle을 R에 복사 : C-x r R

o R의 내용을 삽입 : C-x g R

--------------------
기타
--------------------

o Syntax Highlighting : M-x font-lock-mode
 
  (in .emacs file)
          (global-font-lock-mode 1)

o 현재정의되어 있는 키 바인딩 : C-h b

o KEY 가 실행하는 명령 이름 : C-h c

o 쉘모드 : M-x shell RET

o 쉘실행 : M-! [shell command]

o FTP 모드 : M-x ftp RET

o 한글파일깨져보일 때 : C-x RET c <coding-system> C-x C-f

o 백스페이스키가 안먹힐 때 : (global-set-key "\C-h" 'delete-backward-char)

o 대문자로 : M-u, M-l (소문자로), M-c (첫번째 문자만 대문자로)

o 자동저장기능 : M-x auto-save-mode 혹은 (setq auto-save-mode nil)

o visual bell : (setq visual-bell t)

--------------------
Ange_ftp Mode
--------------------

FTP 를 아주 쉽게 사용할 수 있다.

o 열기 : C-x C-f /username@systemname:/directory/file_name

         / 로 시작하며 username@systemname: 이 들어가면 Ange-ftp 모드가 동작하게 된다.

o 저장 : C-x C-w (똑같다.)

--------------------
Shell_Mode
--------------------

o 시작 : M-x shell RET

o ls 가 이상하게 보일 때 : ~/.bashrc 에 --color=none 으로 ls 의 alias 를 변경해준다.

o 주의 vi 를 실행하면 좀 곤란하다. (C-x C-f)

--------------------
C_Mode
--------------------

o 진짜 탭 : M-i

o 여러 인덴테이션 스타일 선택 : M-x c-set-style K&R

  (cc-mode, gnu, k&r, bsd, stroustrup, whitesmith, ellemtel)

o 영역에 대해 인덴테이션 적용 : M-C-\

  (근데 시간이 좀 걸린다.)

o { } 범위 확인 : M-C-n 또는 M-C-p

o 주석 : M-; (다음라인까지 M-j)

o 주석region : M-x comment-region

o 주석제거 : M-x kill-comment RET

o 함수시작위치 : M-C-a

o 함수끝위치 : M-C-e

o 인덴테이션리포매팅 : M-C-\

--------------------
MACRO
--------------------

o 매크로시작 : C-x (

o 매크로끝 : C-x )

o 매크로이름짓기 : M-x name-last-kbd-macro

o 매크로붙여넣기 : M-x insert-kbd-macro

o 매크로실행 : M-x [macro_name] 또는 C-x e (최근생성된 매크로가 실행됨)

o 매크로파일열기 : M-x load-file ~/emacs/nroff.macs RET
                   또는 (load-file "~/emacs/nroff.macs") in .emacs



--------------------
Fill_Indentation (문단 좌측 들여쓰기)
--------------------

o 인덴트 모드로 전환 : M-x indented-text-mode

o 문단 들여쓰기 : M-x fill-paragraph 또는 M-q

o 여러 문단 들여쓰기 : region 설정 -> M-x fill-individual-paragraph

o 문단 컬럼 수 정의 : C-u # M-x set-fill-column

o 오토 필 모드 : 현재의 fill-column 다음에 스페이스가 들어가면 자동적으로 라인을 나눈다.

                 M-x auto-fill-mode

o 영역 들여 쓰기(indent-region) : region을 설정하고

                 M-C-\

o 인덴트 Prefix 세팅 : 들여쓰기 할 때 이 Prefix 를 적용한다.
 
                 C-x .

  (해제 할 때는 첫번째 칸에서 C-x .)
             
--------------------
Interactive Emacs_Lisp Mode
--------------------

o 이맥스 Lisp Mode 로 : M-x lisp-interaction-mode

o Evaluate : C-j 또는 C-RET

o 샘플 :

(defun zhozho (arg)
    (interactive "sHI : ")
    (save-excursion
      (message "hihi %s" arg)
      )))

o .emacs 샘플 :

(add-hook 'text-mode-hook
          '(lambda ()
                  (auto-fill-mode t)
                  (setq fill-column 100)))

--------------------
Syntax Coloring & Highlighting
--------------------

o 색깔 넣어서 보기 : M-x font-lock-mode

o .emacs :
    (global-font-lock-mode 1)

o 특정모드만 :
    (add-hook 'c-mode-hook 'turn-on-font-lock)

o 색깔 바꾸기 : (예로 주석의 색상을 바꾸기)
  M-x customize-face RET font-lock-comment-face RET

  여기서 색깔 바꾸고 저장(save for future session)하면 ~/.emacs 에
  세팅된다.

o 색상표보기 : M-x list-colors-display

--------------------
Outline_Mode
--------------------

Outline-Mode 는 책형식을 글을 쓸 때에 단계별로 내용을 관리할 수 있는 기능

o Outline모드로 전환 : M-x outline-mode

o 바디 감추기 : C-c C-t

o 바디 보이기 : C-c C-a

o 다음 같은 레벨로 : C-c C-f

o 이전 같은 레벨로 : C-c C-b

o 서브트리 감추기 : C-c C-d

o 서브트리 보이기 : C-c C-s

--------------------
SGML_Mode
--------------------

o 태그(안)보이기 : C-c TAB

o 다음태그로 : C-c C-f, C-c right

o 이전태그로 : C-c C-b, C-c left

o 태그입력 : C-c C-t


--------------------
Hexl_Mode
--------------------

16진수 바이너리 편집모드

o M-x hexl-mode : hexl모드로 전환

o M-x hexl-goto-hex-address : M-g, 16진수 주소로 이동

o (hexl-hex-string-to-integer "f") : 16진수 "f"를 10진수로 변환


--------------------
Mini buffer
--------------------

o M-x column-number-mode : 컬럼번호가 찍힌다.

o M-x display-time : 시간이 찍힌다.

o display-time-day-and-date : var, 날짜도

o display-time-24hr-format : var, 24시간 포맷으로


--------------------
Variable
--------------------

o C-h v VAR : VAR 라는 변수의 값을 본다.

o M-x set-variable <RET> VAR <RET> VALUE <RET> : VAR 를 VALUE 로 바꾼다.

--------------------
Tramp_Mode
--------------------

o Tramp 는 ange-ftp 처럼 원격지에 있는 파일을 접근할 때 사용한다.

o ange-ftp 는 ftp 를 사용하지만, tramp 는 ftp 를 사용하지 않고,
  telnet, scp, rcp 등등의 프로토콜을 사용한다.

o Tramp 는 따로 다운받아 설치해야 한다.

o 다운로드 :
http://ls6-www.informatik.uni-dortmund.de/~grossjoh/emacs/tramp.html
ftp://ls6-ftp.cs.uni-dortmund.de/pub/src/emacs/tramp.tar.gz

o 메소드 :
tu == using Telnet and UUEncode
scp == using scp (사이즈가 클때는 속도향상 bcoz uuencode/decode 가 필요없다)

o 사용법 :
C-x C-f /r:<remote host>:<path to remote file>

o 설정 : .emacs
(add-to-list 'load-path "~/emacs_lisp/tramp/lisp/")
(require 'tramp)
(add-to-list 'Info-default-directory-list "~/emacs_lisp/tramp/text/")
(setq tramp-default-method "scp"

출처: http://ppiazi.springnote.com/pages/699855?print=1