注1:時間有限,一次不能完成本文,慢慢新增、改進。
注2:暫時沒有注2.
Emacs 還是Vim
最早偏聽偏信,嫌棄 Emacs “臃腫”,忍受著不停的“嗶嗶嗶”,先學習了 Vim。
後來在好奇心和折騰的本能驅使下,開始走上 Emacs 之路。
但我並不是所謂的 Emacs 黨。
我的常用機器上預設不開 ssh server, 要 root 許可權進行編輯的時候,用不了tramp mode
,
所以是sudo vim
。
在測試機上的編輯檔案的時候,Vim/Vi 也是首選了。懶,就一個字。
我不用 Emacs 的 evil mode
,倒是在Vim 裡做了以下4個的鍵位對映/繫結:
imap <c-b> <esc>i
imap <c-f> <esc>la
imap <c-a> <esc>0I
imap <c-e> <esc>$a
學習的各個階段
我把自己定位在“編輯器使用者”,都不考慮外掛開發,所以大概分為3個階段:
陌生、熟練、高手。
陌生 -> 熟悉
印象
Vim 給我的印象是:謙虛、謹慎、高效。
讓它做什麼就做什麼,感覺很好控制和溝通,不做多餘的事。
當然也要講它的“語言”,簡單高效的按鍵和命令。
Emacs 的印象則是:激進。
做了很多不想它做的事,怎麼配置都達不到理想狀態。
比如:自動縮排使用製表符tab
還是空格。搞了幾次,頭大,然後把 Emacs 解除安裝了。
操作
Vim 使用者應該都有的初體驗:不知道怎麼輸入、怎麼退出。
但是在不斷的“嗶嗶嗶”聲之後,開始享受它的按鍵方式。
Emacs 的問題就在頻繁使用Ctrl
、Alt
、Esc
的彆扭。
雖然習慣之後談不上享受,但也是非常高效。
配置複雜度
不算空行和註釋,
Vim 的配置檔案,30行之內就能“夠用”,並且語法簡明。
Emacs 則需要100行左右,或者更多,語法是elisp
,只能說“很好玩”。
熟悉 -> 熟練:
vim:
成就感不斷提高,但如果跟 emacs 比較,感覺移動速度低於預期。
多檔案操作體驗不順暢。
需求外掛。
emacs:
開始體會到它奇葩的學習曲線。
但並不建議開始 living in emacs。
探索更多功能,需求更多配置。
emacs 自帶了很多外掛,早就在用了, 之前沒在意到吧。
熟練 -> 高手:
[還沒到“高手”階段]
其他
養成好的 程式設計/寫作 習慣
看過一個 程式設計培訓班線上視訊,那講課人的程式設計習慣,就算是 萬能神本尊都救不了他,
更不用說“編輯器之神”或者“神之編輯器”了。
語法高亮
關閉。
理由:
語法高亮干擾程式碼閱讀?注:暫時引用這個地址,有時間轉到sf 來。
方法:
- 啟動:
emacs --color=never
- 配置:
.emacs
(global-font-lock-mode 0)
.vimrc
syntax off
- 命令:
M-x font-lock-mode
server mode
emacs
- 啟動:
emacs --daemon
- 配置:
(server-mode)
- 使用
emacsclient
vim
vim server/client 模式需要編譯時開啟支援。
通過vim -h| grep servername
有沒有輸出檢查,如果沒有,
則需要安裝 帶c/s mode 支援的vim。
然後,vim --servername xx
vim --serverlist
vim --remote xx
對 Vim 外掛的理解
我理解 Vim 的特點的靈巧、精準,過分的用外掛填充,真的會讓它變得臃腫。
所以我不會想把 Vim 變成 IDE,
比如,
我會用cscope
呼叫vim
,而不想用一個 cscope.vim
的外掛。
emacs 配置
gnu global
gtags 提供的cscope 類似介面的工具:
(setq cscope-program “gtags-cscope”)