這是事實,但 elisp 並不比 vim language 友好。Emacs 上手就能好好的打字,而用 VIM 起碼得知道 Normal 和 Insert 兩個模式,否則字都打不了。但是,notepad 難道不是更加友好嗎?我放棄了 notepad、notepad++ 、em editor 等等這些文本編輯器(當時 Sublime Text 還沒有出名),來接觸 Emacs 或者 VIM ,並不是因為之前那些編輯器都不夠友好,而是他們不夠高效——十分不夠,所以才會硬起頭皮來摸這兩個讓人困惑的「編程利器」。
但是,隨著了解的深入,我發現 Emacs 比 VIM 更不友好,更準確的說法是 elisp 比 vim language 更不友好。可能 el 作為編程語言比 viml 優秀很多,可能 viml 作為編程語言來說很爛,但是對於壹個不大懂編程的用戶而言,viml 比 el 好懂太多了。
2. Emacs 擁有 org-mode 。
這是事實,org-mode 確實是純文本編輯的利器,這也是讓我多次想要放棄 VIM 轉到 Emacs 的原因。但是無奈 Emacs 門檻太高。另壹方面,我對 org-mode 的需求實際上只有兩個:outline 和 帶計算功能的 todo list ,這兩個功能在 VIM 中有 VimOutliner 這個插件可以用,算是基本滿足了。而且 VIM 還有 Voom 這個插件,可以實現非常棒的樹狀側邊欄,在 org-mode 中反而沒有很方便的實現(之前經過搜索,聽聞是可以用 mini buffer 來實現)。
3. Vim 開啟大文件的性能很成問題。
VIM 通常被詬病的實際上並不是處理大文件不行,而是處理長行不行。壹個百來 K 的文件,如果只有 1 行的,妳用 VIM 來操作也會覺得想死。對於運維人員,幸運的是,在壹般的文本處理過程中,不會碰到那麽長的行,這並不是壹個痛點。
4. Emacs 的配置語言 ELisp 比起 vimscript 要高壹大截。
這是在第 1 點就說到的問題。對於壹個沒有編程背景的人來說,事情並不是這樣的。vim language 實際上更友好,也更容易看懂。
對於文本編輯而言,實際上並沒有什麽很高級的編程需求。我們接觸得最多的可能就是壹些文本的查找替換。 vim language 的優勢在於,它和 VIM 的操作是壹致的,這降低了學習和使用的成本。
比如,在 VIM 中進行替換,就是
:%s/pattern/new string/g
同樣的命令,直接復制到 vim script 中就能跑。如果妳要寫壹個函數進行壹系列的查找替換,實際上只有把全部的查找替換命令直接塞到 vim script 裏面就可以了。
此外還有 normal 命令可以讓用戶直接編寫鍵盤的操作。妳想要什麽操作,直接在腳本裏面寫就好了,這是十分直觀和容易學習的,而 elisp 就難懂得多。