回憶Emacs 和Vim 的學習之路 – v0.0.9

桀克歪發表於2015-11-13

注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 的問題就在頻繁使用CtrlAltEsc的彆扭。
雖然習慣之後談不上享受,但也是非常高效。

配置複雜度

不算空行和註釋,
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”)

相關文章