emacs 옮겨타기 테이블이 있으면 좋겠다는 생각

nako의 이미지

vim 만 줄곧 써오다가 emacs로 갈아타고 있는 중입니다.

잘 써보려고 emacs 메뉴얼도 뽑아 놓고, 몇몇 도움이 될만한 사이트의 링크도 준비해 놓았습니다만 막상 머리에 떠오르는 기능을 손으로 옮기기 까지는 시간이 많이 걸리는 군요.

VI에서 손쉽게 쓰던 많은 기능들을 emacs에서 구현하려고 할 때, 분명히 구현은 되어 있을 텐데 찾기는 만만치 않은 경우가 많았습니다.

물론 이곳 kldp wiki를 비롯해서 많은 분들이 친절하게 howto 를 만들어 놓으셨지만 스피드하게 찾는 데는 별로 적당하지 않더군요.

그래서 생각인데, 다른 에디터를 쓰던 사람들이 쉽게 emacs로 옮겨 탈 수 있도록 table을 만들어 놓으면 어떨까요?

즉 vim의 dw 는 emacs의 M+d 와 같은 식으로 말입니다.

제대로 익히는 데에는 체계적으로 정리된 문서를 공부하는 것이 필요하겠지만 다른 에디터에서 emacs로 옮겨가는 사람에게는 자신이 즐겨쓰던 에디터에 구현 된 기능으로 바로 인덱싱 가능한 테이블이 크게 도움이 될 것 같습니다.

물론 emacs에서 vim이나 에디트 플러스 등으로 옮겨가는 사람도 마찬가지겠지만요.

제가 wiki에 바로 시작하면 될 일을 괜히 사람들에게 떠 보는 것처럼 느낄 수도 있겠지만 막 emacs로 옮겨타는 처지라 아는게 짧아서리 ...

peccavi의 이미지

저도 얼마전에 같은 생각을 해서, VIM과 Emacs의 비교테이블을 만드려고 시도(?)를 한 적이 있습니다.
VIM에 익숙해져 있다고는 하나, 막상 VIM에서 제가 사용하는 기능이나 단축키를 뽑아보니 몇개 안되더군요.

VIM에서 사용하는 기능이 이정도밖에 안되는데, Emacs로 갈아타기 쉽겠군.. 하고 생각이 들다가도,
VIM에서 사용하는 기능도 이정도밖에 안되는데, Emacs로 갈아탈 이유가 대체 뭐지.. 라고 또 생각이 들어서..

그냥 딴생각 안하고 VIM에 충실하는 중입니다.

에구, 그냥 잡담입니다. ^^;

(이래서 발전이 없는건가.. ㅡ,.ㅡa)

----
jai guru deva om...

----
jai guru deva om...

nako의 이미지

곰곰히 생각해보면 자주는 아니더라도 요긴하게 써먹는 기능들이 제법 있잖습니까.

이를테면 폴딩이나 마킹, 매크로 등등 말입니다.

저는 최근에 간단하지만 잘 찾지 못해서 해맨게 vim의 #, * 입니다.
단어 위에 대고 치면 같은 단어 찾아주는 기능 말입니다.

그 전에는 etags에서 M+. 이 define을 찾아가는 것은 알았는데 pop은 뭘로 하는지 모르겠더라구요. 몇몇 howto에도 M+. 은 있는데 pop하는 M+*은 나와 있지 않더군요. 이럴때 일일이 etags으로 검색하는 것보다는 그냥 vim+ctags의 ctrl+t에 해당하는 기능이 뭔지를 찾는게 훨씬 수월할 수 있거든요.

terzeron의 이미지

단축키로 정의되어 있지 않습니다.

pop-tag-mark인데,
(global-set-key "\M-\," 'pop-tag-mark);
를 이용하면 Alt-,를 단축키로 사용할 수 있습니다.

비슷하게 특정 행 번호로 이동하는 단축키도 emacs에서는 정의되어 있지 않죠.
(global-set-key "\M-\:" 'gogo-line);
를 정의해서 Alt-:로 vi와 비슷하게 사용할 수 있습니다.

~/.emacs에 적어놓고 쓰면 됩니다.

primewizard의 이미지

M.W.Park의 이미지

이미 알고 계실지도 모르지만 emacs reference card를 추천합니다.
잘 보이는 곳(파티션이나, 책상 유리 밑 등)에 붙여두고 참고하면 좋습니다.
그리고, 제일 중요한 것은 포기하고 싶어 질때 절대 포기하지 않는 끈기입니다.
이미 한가지 도구에 익숙해 있던 사람이 다른, 낯선 도구로 동일한 목적을 쉽게 달성하기는 상당히 어려운게 사실입니다.
제가 몇년전에 3벌식 전환할 때도 포기하고 싶은 생각이 여러번 들었습니다만 꾹참고 한달 썼더니 큰 불편은 없는 상태로 되더군요.
참, 그리고 (e)lisp을 배워보는 것도 emacs와 친해지는데 많은 도움이 됩니다.

-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂

-----
오늘 의 취미는 끝없는, 끝없는 인내다. 1973 法頂

ed.netdiver의 이미지

H : C-u 0 M-r
M : M-r
L : C-u -1 M-r

--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)

--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)

primewizard의 이미지

M-0 M-r
M-r
M-- M-r

--
M-0 == C-0 == C-u 0

단축키가 Ctrl,Alt 어느 것으로 시작하느냐에 따라
digit-argument는 골라서 사용하시면 됩니다.

익명 사용자의 이미지

http://www.emacswiki.org

그리고 vi를 혐오해서 해당되는 단축키를 모른다는...

서지원의 이미지

M-x viper-mode 도 괜찮습니다. dw, H, M, L, df, 등등 vim에서 많이 쓰이는 단축키들을 그대로 쓸 수 있습니다. 아쉽게도 *, # 는 안되더군요.

Emacs 키들과 같이 쓸수도 있습니다.

karu의 이미지

11.3.4 Editor command summary (Emacs, Vim)
exit: C-x C-c :qa /:wq /:xa /:q!
Get back/command mode: C-g
Backward(left): C-b h
Forward(right): C-f l
Next(down): C-n j
Previous(up): C-p k
stArt of line(^): C-a 0
End of line($): C-e $
mUltiple commands: C-u nnn cmd nnn cmd
Multiple commands: M-digitkey cmd
save File: C-x C-s :w file
beginning of buffer: M-< 1G
end of buffer: M-> G
scroll forward 1 screen: C-v ^F
scroll forward 1/2 screen: ^D
scroll forward 1 line: ^E
scroll backward 1 screen: M-v ^B
scroll backward 1/2 screen: ^U
scroll backward 1 line: ^Y
scroll the other window: M-C-v
delete under cursor: C-d x
delete from cursor to eol: C-k D
iSearch forward: C-s
isearch Reverse: C-r
Search forward: C-s enter /
search Reverse: C-r enter ?
isearch regexp: M-C-s
isearch backward regexp: M-C-r
search regexp: M-C-s enter /
search backward regexp: M-C-r enter ?
Help: C-h C-h :help
Help Apropos: C-h a
Help key Bindings: C-h b :help [key]
Help Info: C-h i
Help Major mode: C-h m
Help tutorial: C-h t :help howto
Undo: C-_ u
Redo: C-f ^R
Mark cursor position: C-@ m{a-zA-Z}
eXchange Mark and position: C-x C-x
goto mark in current file: '{a-z}
goto mark in any file: '{A-Z}
copy region: M-w {visual}y
kill region: C-w {visual}d
Yank and keep buffer: C-y
Yank from kill buffer: M-y p
convert region to Upper: C-x C-u {visual}U
convert region to Lower: C-x C-l {visual}u
Insert special char: C-q octalnum/keystroke
^V decimal/keystroke
replace: M-x replace-string :%s/aaa/bbb/g
replace regexp: M-x replace-regexp :%s/aaa/bbb/g
query replace: M-% :%s/aaa/bbb/gc
query replace: M-x query-replace
query replace regexp: M-x query-replace-regexp
Open file: C-x C-f :r file
Save file: C-x C-s :w
Save all buffers: C-x s :wa
Save as: C-x C-w file :w file
Prompt for buffer: C-x b
List buffers: C-x C-b :buffers
Toggle read-only: C-x C-q :set ro
Prompt and kill buffer: C-x k
Split vertical: C-x 2 :split
Split horizontal: C-x 3 :vsplit (ver. 6)
Move to other window: C-x o ^Wp
Delete this window: C-x 0 :q
Delete other window(s): C-x 1 ^Wo
run shell in bg: M-x compile
kill shell run in bg: M-x kill-compilation
run make: :make Makefile
check error message: C-x` :echo errmsg
run shell and record: M-x shell :!script -a tmp
...clean BS, ... :!col -b record
...save/recall shell record: C-x C-w record :r record
run shell: M-! sh :sh
run command: M-! cmd :!cmd
run command and insert: C-u M-! cmd :r!cmd
run filter: M-| file {visual}:w file
run filter and insert: C-u M-| filter {visual}:!filter
show option :se[t] {option}?
reset option to default :se[t] {option}&
reset boolean option :se[t] no{option}
toggle boolean option :se[t] inv{option}
wrap text at column 72 :se tw=72
do not wrap :se tw=0
autoindent :se ai
expand tab :se et
specify comment (mail) :se comments=n:>,n:\|

run GDB M-x gdb
describe GDB mode C-h m
step one line M-s
next line M-n
step one instruction (stepi) M-i
finish current stack frame C-c C-f
continue M-c
up arg frames M-u
down arg frames M-d
copy number from point, insert at the end
C-x &
set break point C-x SPC

링크:http://www.debian.org/doc/manuals/reference/ch-edit.en.html

primewizard의 이미지

nako님 시간도 많이 지나 emacs에 익숙해지셨을 테니...
총대를.....^^;