對於非編程的文本編輯,Emacs和Vim各有什麼優勢?


Emacs的Org-Mode號稱終極文字編輯器,專註寫作領域XX年...

Org-Mode主要有:

目錄樹

目錄樹可以分一級,二級,三級,四級,五級。方便你儘快釋放腦中想法,之後再將一個一個零散的目錄樹(想法)在進行合併,最終形成一個系統的文章。目錄樹也可以進行摺疊,這樣你在編輯一個目錄樹的時候就可以摺疊其他目錄樹,專註於當前的寫作,排除干擾。

標籤

你可以給每個目錄樹打不同的標籤,方便在大量的撰寫(小說)工作中進行查找,標籤也有很方便的快捷鍵,可以在多個標籤之中來回跳轉返回。

鏈接

在Org-Mode里可以鏈接任何文件,絕對路徑或相對路徑都可。你可以一個文件只寫目錄,然後分別鏈接其他的文件,每個文件一個章節。你也可以鏈接一個圖片,在導出文件的時候會自動載入進去。

註腳

在Org-Mode里添加註腳很方便,一個快捷鍵就可以添加一個註腳,在編輯完註腳之後又能快捷返回。

另外Org-Mode還有很多其他強大的功能,比如時間管理,任務項目管理什麼的。暫時就想到這麼多吧,因為我也沒用Org-Mode寫過什麼爆長的小說之類的。通常也只是用Org-Mode做做項目任務管理和記筆記、Wiki什麼的。


分享我個人的一點想法。

我是一個非程序員的Vim用戶,我在Windows上使用GVim。除了偶爾寫一點小腳本,或者寫HTML+CSS,其餘大部分時間都是用於與編程無關的文本編輯工作。我舉一些例子:

從網上獲取的小說,用Vim進行重新排版、拆分章節,我還寫了個python腳本把文本和圖片打包成epub。

網上收集的文章,我用vim重新排版,以方便進行轉載,比如這種:在日動畫執行製片日記(非定期性)

重新排成這樣:知乎專欄

網上收集的文字資料,我需要進行一些整理,以方便輸入資料庫。

以上這些操作vim在normal模式下,只需要很少的按鍵操作和簡單的正則表達式操作就能完成,相當便捷。


只要你追求高效的純文本編輯,最終你會找到這倆頭上……


當年棄vim進emacs坑的原因:自己寫要用中文寫博客,還喜歡經常修改。於是遇到以下問題:

1、vim每次進normal模式都需要換輸入法,進insert模式要換回中文。一篇文章換幾十次也就煩了。現在知道有辦法解決了,但是懶了。

2、vim的向下j是按邏輯行為單位的,也就是說一段文字算一行。想編輯屏幕上下一行的東西……對不起,請使用其他方法。現在也知道有辦法解決了,但是懶了。

3、中文替換有時會在意料不到的地方跪掉。emacs有個query-replace的一族函數,可以用於查找和替換時決定這個地方是不是要替換。極好用,不知道vim怎麼做到。

然後就進了emacs大坑了。

現在主要用emacs寫LaTeX,局部編譯直接顯示公式還是極其牛逼的……幾乎沒有看到其他TeX IDE有這個功能(說的是plain LaTeX,而不是LyX那樣的)。最近代碼寫得少,不知怎麼把emacs配置弄跪了,C++都只好用qt creator寫的。打算重新配置一下emacs。


emacs 的優勢: org-mode 。vim 下沒有合適的替代方案。

vim 的優勢:文本對象(可以用 evil 模仿之)、快捷鍵分布更容易記憶、添加書籤更容易。配置起來不算難。


對於 涼言 所說的 "emacs 的優勢: org-mode 。vim 下沒有合適的替代方案 " 這點我非常同意。無論Vim Wiki還是Markdown都不能完全代替Org的功能。

如果題主是在Win下使用的,Gvim比Win下的Emacs額外還有幾個優勢。

1.自帶文本加密【:X】

2.自帶差分【diff】

3.自帶配色方案

以上這些Win下的Emacs都不具備,配色方案還算好解決,差分和加密不知該如何實現,如有知道的大神請告知。

從以上也可以看出,Vim在各平台往往更容易達到相同的操作、功能體驗。

另說幾個小細節。

1. 雨夜枯燈 所說切換模式時每次都要切換中英文的問題在Emacs中其實也有,比如到文檔最末M-&>這裡必須切換英文,否則無法打出尖括弧。當然如果切換頻率高,Vim還是更痛苦些。

2.查找和替換。Gvim在命令模式下是可以Ctrl-V粘貼的,這點我不知道Emacs中應該如何操作,Win下C-s想搜索剪切板的內容實在不知道該如何操作

3.Gvim插入模式下就和記事本一樣,所以有道詞典等軟體都能正常工作,Emacs就比較悲劇了。(有道的選中取詞就是強行Ctrl-C這點可以從Emacs的提示信息上看到)

總結:如果不是想使用Org-mode或者想學習elisp,不建議在Win環境下使用Emacs。

PS:現在我是用Sublime多,其實就那幾個功能,圈選詞自動提示,Ctrl-D選中相同內容,多點編輯,Ctrl+方向鍵按詞移動,Ctrl+Shift+方向鍵移動游標並選中。這幾個功能相互配合是在太方便了,外加默認自動保存Session,簡直草稿王。這些功能在Emacs或者Vim中只有一部分,無法形成配合。如果哪位知道在Emacs或者Vim中完整實現這些功能的方法,請務必告知在下,謝謝!


推薦閱讀:

vim和exvim的區別?
如何用 Vim 重構代碼?
Mac OS X Lion 下 Vi 怎麼回到行首/行尾以及 page up/page down 呢?
在 Vim 中移動游標需要先切換模式,是否很麻煩?
如何優雅地使用 Vim?

TAG:文本編輯器 | Vim | Emacs |