출처 :
http://blog.ezion.net.au/904
Windows에서 Emacs사용하기
다운로드
GNU Emacs와 X Emacs를 모두 설치해봤지만,
EmacsW32에서 다운로드 받는 버전이 가장 잘되어 있는것 같다.
이곳에서 가장 최신의 패치된 버전을 받는다.
단축키
encoding change : (C-x C-m f utf-8)
기본명령
명령 | 단축키 |
실행명령 | emacs |
파일열기 | C-x C-f, /디렉토리명/디렉토리명/파일명 |
파일종료 | C-x k 현재 파일을 닫는다. |
실행종료 | C-x C-c emacs 종료 |
파일저장 | C-x C-s |
실행취소 | C-/ 또는 C-x u |
명령취소 | C-g (단축키를 잘못 누른 경우 반드시 명령취소를 해야 한다. 그렇지 않으면 emacs는 계속 명령을 대기한다.) |
이동
명령 | 단축키 |
한줄아래 | C-n 또는 방향키 아래 |
한줄위로 | C-p 또는 방향키 위 |
한칸앞으로 | C-f 또는 방향키 우측 |
한칸뒤로 | C-b 또는 방향키 좌측 |
한단어 앞으로 | M-f |
한단어 뒤로 | M-b |
PageUp | M-v |
PageDown | C-v |
Home | C-a 커서를 줄의 맨 처음으로 이동 |
End | C-e 커서를 줄의 맨 끝으로 이동 |
삭제
명령 | 단축키 |
한글자 삭제 | C-d 또는 삭제할 글자 앞으로 이동하여 백스페이스 키 |
한단어 삭제 | M-d 또는 삭제할 단어 앞으로 이동하여 백스페이스 연타 |
한줄 삭제 | C-k 커서가 위치한 현재 줄의 끝까지 삭제 |
복사/붙여넣기
명령 | 단축키 |
영역지정 | C-<SPC>(or C-@) 키를 누르고 원하는 영역을 방향키 또는 Ctrl + n,p,f,b 키등으로 이동 |
복사 | M-w |
잘라내기 | C-w |
붙여넣기 | C-y |
prefix넣기 | “M-x string-rectangle” (C-x r t) |
블럭복사 | C-x r r |
블럭삭제 | “M-x kill-rectangle” (C-x r k) |
Paste (yank) a cut rectangular selection of text | C-x r y |
open rectangle, shifting text right | C-x r o |
blank out rectangle | M-x clear-rectangle |
prefix each line with a string | M-x string-rectangle |
Abbrevs
명령 | 단축키 |
add global abbrev | C-x a g |
add mode-local abbrev | C-x a l |
add global expansion for this abbrev | C-x a i g |
add mode-local expansion for this abbrev | C-x a i l |
explicitly expand abbrev | C-x a e |
expand previous word dynamically | M-/ |
검색/치환
명령 | 단축키 |
검색 | C-s 검색어 (C-s를 반복해서 누름으로써 계속 검색을 할 수 있다) |
정규표현식 검색 | C-M-s 정규표현식을 사용해서 매우 정교한 검색이 가능 |
일반 치환 | M-% 또는 M-x query-replace 와 같이 명령어를 입력하는 방법도 있다. |
정규표현식 치환 | C-M-% 또는 M-x query-replace-regexp |
들여쓰기와 내어쓰기
명령 | 단축키 |
들여쓰기 | C-u 8 C-x TAB 또는 C-8 C-x TAB |
내어쓰기 | C– C-u 8 C-x TAB 또는 C– C-8 C-x TAB |
사각형 영역지정
명령 | 단축키 |
지정한 사각형 영역 지움 | 사각형 영역지정, C-x r k |
지정한 영역만큼 공백삽입 | 영역지정, C-x r o |
대소문자 변경
명령 | 단축키 |
선택영역을 대문자로 | C-x C-u |
선택영역을 소문자로 | C-x C-l |
주석 달기
명령 | 단축키 |
기본 주석 | 영역지정, M-; 또는 M-x comment-region 참고. emacs에서 주석 문자와 형태는 각 mode에 따라 다르다. 예, sql mode에서는 알아서 표준 주석인 – 문자가 입력된다. |
주석 제거 | M-x uncomment-region |
탭과 공백
커스터마이징
- 유용한 줄 끝 공백제거 사용자 정의 함수
;; 버퍼전체
;; delete horizontal space for the whole buffer
(defun delete-horizontal-space-buffer ()
"Deletes horizontal spaces at the end of every line in buffer."
(interactive)
(delete-horizontal-space-region (point-min) (point-max)))
;; 지정된 영역만
;; delete horizontal space in region
(defun delete-horizontal-space-region (beg-region end-region)
"Deletes horizontal spaces at the end of every line in the region.
BEG-REGION and END-REGION are args which specify the region
boundaries."
(interactive "*r")
(let ((end-region-mark (make-marker))
(save-point (point-marker)))
(set-marker end-region-mark end-region)
(goto-char beg-region)
(end-of-line)
(delete-horizontal-space)
(while (and (= (forward-line 1) 0)
(< (point) end-region-mark))k
(end-of-line)
(delete-horizontal-space))
(goto-char save-point)
(set-marker end-region-mark nil)
(set-marker save-point nil)))
; FIXME emacs에서는 설정파일에 아래처럼 해준다고 해결 될만큼 TAB은 단순한것 같지 않다. :(
(setq default-tab-width 4)
redo+.el
emacs에서 undo는 기본 기능에 있는데 redo는 없다. redo+.el로 해결
단축키 : undo = C-/ , redo=C-?
윈도우
- 수평으로 나누기 C-x 3 (M-x split-window-horizontally)
- 수직으로 나누기 C-x 2 (M-x split-window-vertically)
- 윈도우 옮겨다니기 C-x o (시계방향으로 이동한다. 또는 마우스로 클릭한다.)
- 윈도우 삭제 C-x 1
윈도우 창 늘리기
- 길이 C-x ^
- 폭 C-x } 또는 C-x {
- 윈도우 사이즈 통일 C-x +
보통은 mode line을 마우스로 드래그하여 조정한다. 사이즈를 조정하기 위해 단축키를 여러번 누르기 싫다면 C-u를 사용하는 방법도 있다. 예, C-u 20 C-x ^ TIP. M-x compare-windows 버퍼의 내용을 비교하고 처음으로 다른 부분을 보여준다. 만약 두개이상일 경우 현재 커서가 위치해 있는 윈도우와 시계 방향으로 다음 윈도우의 내용이 비교된다.
Customize
반드시 Customize가 필요하다. 기본 세팅에는 없는 기능들이 좀 있다. 여러 파일들을 관리하기 위해서
ECB를 추천한다. 줄번호 표시와 undo/redo 기능을 넣기 위해서 추가적인 el파일들을 설치해 주어야 한다.
기타
댓글 없음:
댓글 쓰기