EMACS 에서 특정모드의 키맵은 어떻게 보나요?
이제 막 emacs에 입문하게됐습니다.
그런데 이게 다 좋은데(좋은거 같은데) 단축키 Ctrl-n, Ctrl-p 가 불편하네요.
많은 분들이 지적하는 Ctrl의 위치는 제겐 문제없는데
그보단 n, p, f, b 이 위치들이 너무 떨어진데다 새끼손락 힘이 없어서 p 누르기가 힘드네요.
*
*
*
복사ctrl-c, 붙여넣기ctrl-v, 파일열기ctrl-o, UNDO ctrl-z 처럼
다른 gui 에디터 단축키와 비슷하게 키바인딩한 시도가 있었을거 같아
구글 검색해보니까
emacs키 문제로 xahlee 라는 외국분이 ergoemacs프로젝트로
IBM CUA기반의 키바인딩을 하고 있던데
이것도 좀 불편해서 아예 직접 키바인딩을 해보려고합니다.
*
*
*
금방 끝날줄 알았는데 emacs 단축키가 구글 검색으로도 다 안나올만큼 많네요.
mojor, minor모드마다 단축키가 다 있으니
제 나름의 일관성을 유지하면서 바꾸려면 모드마다 다 확인해봐야 겠다싶은데
Ctrl-f b 하면 단축키리스트가 나오긴하는데 기본적인 것만 있고 특정모드에 관련된건 안나오네요.
예를 들어 isearch 모드같은 경우 단축키리스트를 어떻게 볼수 있을까요?
이거 관련된 명령어만 해도 43개나 되는군요..
*
*
*
덧. MS윈도우(최근 대부분의 리눅스)에서 공통적으로 쓰이는 단축키와 같게 키바인딩을 하면 더 많은 유저들이 쉽게 다가갈수 있지 않을까요? emacs를 elisp배워서 정말 잘 쓰려고 하면 어렵겠지만, 쉽게 기본적인 몇가지만 알아놔도 일반인이 쉽게 쓰기에도 충분히 매력적인 에디터 같습니다. 그런데 copy, paste단축키부터 생소한점이 입문하기 꺼려지는 요소가 되거 같습니다. 처음에 강력한 기능 몇가지 보여주고 단축키도 이미 알고 있는 것과 비슷하게 해주면, vim의 이지모드처럼 일단 발을 담그기 편하게 해주는겁니다.
ctrl n,p 쓰는게 힘들면
ctrl n,p 쓰는게 힘들면 방향키를 쓰는 방법도 있음.
control은 tab 키 아래로
control은 tab 키 아래로 위치시키고,
control은 왼손 새끼 손가락,
f는 왼손 가운데 손가락
b는 왼손 집게 손가락
n은 오른손 집게 손가락
p는 오른손 약 손가락
에 놓고 쓰세요.
--
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://www.cinsk.org/cfaqs/
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
특정 모드에 관한
특정 모드에 관한 단축키는 M-x describe-bindings
--
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://www.cinsk.org/cfaqs/
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
M-x describe-bindings가
M-x describe-bindings가 본문에 적은 Ctrl-f b 와 같은거 같네요.
예를 들자면
isearch-repeat-forward 같은 isearch-mode에서만 동작하는 명령어들은저 목록에 없습니다.
이런 특정 모드에서만 동작하는 local-mode 단축키만 따로 볼수 없을까요...
혹시나 소스파일(isearch.el)을 들여보니 모든 명령어와 키조합이 있긴 한데 안쓰이는 것까지 다 있는거 같고, 키맵 변경 명령이 한군데 있는게 아니라 블럭 안에 알수없는 elisp문법들과 같이 있으니..복잡하네요..
소스파일 말고 help명령어로 보기쉽게 정리해놓은게 없을지요.
이거 고치다가 Ctrl-n Ctrl-p에 익숙해릴지도..
p를 약지로 누르니까 좀 괜찮네요. n,p,f,b 이대로 쓰셔서 익숙해진 분들은 문자입력과 위치변경 간의 전환이 빠르게 되시나요?
n,p,f,b가 단순히 위치변경뿐만 아니라 다른 모드에서도 유사한 행동(클립보드 내용물 이동에도 n과p를 사용하는등)에 이 키들이 할당해놨으니 다같이 바꾸자 생각했는데..그러자니 할게 너무 많네요..
C-s를 누르면 isearch
C-s를 누르면 isearch mode 상태가 됩니다. 그 상태에서 C-h b를 누르면 isearch mode의 단축기 목록이 나옵니다.
C-h b (현재 켜진 모든 모드의 단축키 목록 보기)
C-h m (현재 켜진 모든 모드에 대한 설명 보기)
C-s C-h b (isearch 단축키 목록보기)
C-s C-h m (isearch 모드 설명 보기)
다시보니 global-mode만
다시보니 global-mode만 나오는 줄 알았는데
지금 활성화된 모든 모드의 단축키를 모두 보여주네요.
그런데 다른건 다 되는데 isearch만은 활성화 됐을때 C-h를 누르면 isearch모드가 꺼져버리네요.
윈도우용 emacs쓰는데 약간 다른건지..
저는 우분투에서 emacs
저는 우분투에서 emacs 23.0.60.1을 씁니다.
명령창에서
로 실행한 후에 C-s C-h를 누르면 어떤가요?
isearch-mode-map과 관련
isearch-mode-map과 관련 맵(예: minibuffer-local-map)등을 뒤져보면 describe-binding을 쓰지 않고도 keymap을 볼 수 있긴 합니다만, 가능하면 기본적인 키들의 binding을 바꾸지 말고 익숙해질 수 있도록 연습하기 바랍니다. (처음에 적응하기가 조금 힘들지 몰라도...)
기본 key binding을 바꿔서 익혀버리면, 나중에 새로운 mode나, 기타 shell 단축키, gtk 단축키 등에서 오히려 어려움을 겪게 될 수 있습니다.
--
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://www.cinsk.org/cfaqs/
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
동감입니다.
기본 단축키를 익히고 난 다음에 자신만의 단축키가 이루어 져야 할 것 같습니다.
다른 곳에서 잠깐 작업 할 일이 있거나 다른 새로운 모드를 익힐때 또는 자신만의 새로운 단축키를
만들때도 기본 단축키들은 배제한 상태에서 해야 오래 emacs를 쓸 수 있습니다.
결코 이건 경험에서 나온 말이 아닙니다. ;)
---------------------------------------------
git init
git add .
git commit -am "project init"
---------------------------------------------
---------------------------------------------
git init
git add .
git commit -am "project init"
---------------------------------------------
emacs에서 'Ctrl + 문자'
emacs에서 'Ctrl + 문자' 는 안 건드리는게 좋습니다. 대부분 사용이되고 있기
때문입니다. 특히 'Ctrl+c'는 더욱 그렇습니다.
key 입력을 받기위해 사용되는 'Ctrl+x', 'Ctrl+c', 'Ctrl+h', 'Ctrl+x 4', 'M-o' 등을
'prefix key'라고 합니다[1]. 이들은 기본적으로 이맥스에서 다음과 같은 키맵들을
사용합니다. `ctl-x-map', `mode-specific-map', `help-map', `ctl-x-4-map',
`facemenu-keymap'. 'C-h v ctl-x-map' 같은식으로 내용을 확인할 수 있습니다.
'Ctrl+c' prefix 의 경우 보통 특정모드의 단축키를 지정할 때 사용합니다. 그래서
'Ctrl+문자'로 사용되는 키바인딩의 중복을 피할 수 있습니다.
emacs-w3m
C-c C-@ w3m-history-store-position
C-c C-a w3m-switch-buffer
C-c C-b report-emacs-w3m-bug
C-c C-c w3m-submit-form
...
c++-mode
C-c C-a c-toggle-auto-newline
C-c C-b c-submit-bug-report
C-c C-c comment-region
C-c C-d c-hungry-delete-forward
...
shell-mode
C-c C-a comint-bol-or-process-mark
C-c C-b shell-backward-command
C-c C-c comint-interrupt-subjob
C-c C-d comint-send-eof
...
gnus
C-c C-a gnus-group-apropos
C-c C-b gnus-bug
C-c C-d gnus-group-describe-group
C-c TAB gnus-info-find-node
...
'ctrl+v' (scroll-up)
'ctrl+z' (suspend-frame)
예전에 어떤 글에서 "그 많은 이맥스 단축키를 어떻게 외워요?"라는 질문에 "단축키는
외우기 보단 몸으로 익힙니다."라는 답변을 본적이 있습니다.(정확하지 않아요
오래되서리...) 조금 익숙해지시면, 지금 이맥스에서 복사/붙여넣기를 찾으시듯 다른
프로그램에서 C-p/C-n/C-v를 사용할 수 있는 방법을 찾으실 것이라 생각합니다.
[1] http://www.gnu.org/software/emacs/elisp/html_node/Prefix-Keys.html
------------------------------------------
emacs user
------------------------------------------
emacs user
댓글 달기