為什么我還在使用 Emacs ?

fmms 12年前發布 | 13K 次閱讀 Emacs

我在學校里是出了名的Emacs狂人,當人們有Emacs問題的時候總是來找我。往往,人們會問我為什么還在使用Emacs?它是不是太古老了?為 什么不用Eclipse或者Visual Studio呢?對程序員來說,Eclipse和Visual Studio沒有奇怪的快捷鍵,并且有智能提示,這難道不好?

我寫這篇文章就是為了說明為什么我還在使用Emacs。我并沒有情緒化。我真的并沒有發現其他編輯器更好,我也很想用類似Eclipse的東西來工作,但是我不能!

為什么我還在使用 Emacs ?

Emacs 有 GUI 和 CLI 界面
我常常需要連接到學校的服務器,由于Emacs可以直接的命令行終端運行,我可以在所有的主機上使用它。在我自己的電腦上,我會使用GTK的界面。而類似Eclipse的IDE是只有GUI界面的,所以不適合在服務器上工作。

Emacs的文本界面是統一的,也就是說你總是可以使用你熟悉的那些快捷鍵(搜索,拷貝等等)。

Emacs 可以完全鍵盤操作
緊接上面的論述,你可以完整的操作Emacs而不需要去碰鼠標。當你進行命令行操作的時候,這是很重要的。正如其他Emacs、Vim的使用者說的,頻繁的去用鼠標會降低你的編輯速度。

還有,我曾經使用了三年的筆記本,只有觸摸板,很不方便。所以我很喜歡鍵盤操作,而不是那個觸摸板。

Emacs 擁有命令緩沖
你 可以通過 M-x 組合鍵來啟用命令緩沖。然后你就可以輸入你的命令了。對于那些沒有快捷鍵的操作,命令緩沖可以讓你通過鍵盤去調用這些命令而不用去一級一級的菜單尋找。命 令緩沖也支持自動完成,操作歷史。當你需要重復一個操作的時候命令緩沖明顯比重新去菜單里點一遍要快速。

Emacs 配置很容易
當你不懂如何配置Emacs才能滿足你的要求的時候,你可以去#emacs IRC channel(irc.freeenode.net):
1. 提出你的問題
2. 把其他人給你的答案拷貝下來
3. 粘貼到 .emacs 文件
4. 使用看看
配置Emacs就是如此簡單。如果你不熟悉Lisp的話,Emacs也有自定義模式可以幫助你生成Lisp代碼。

由于配置文件是一個文本文件,所以可以很方便的加入版本控制。把你的配置文件放到中央服務器,然后你就可以在別的電腦上使用相同的配置了。

Emacs 可以編輯所有的文件
很少有什么文件類型是 Emacs 不能識別的。而且Emacs可以支持你能想到的和你不能想到的編程語言。我用Emacs編輯過Java,C,C++,Scheme,Haskell,OCaml,R,GAMS,Python,JavaScript,Clojure等等。

Eclipse很適合用來編輯Java,Visual Studio很適合用來編輯C#.但是他們反過來卻不行。我并不想學習這么多不同的工具,這也是我用Emacs的主要原因。不管是什么語言,很多基本的點擊操作都是一樣的,使用Emacs能讓我高效的工作。

Emacs 有很多有用的模式
人們常常拿Emacs自帶的Tetris游戲開玩笑,為什么編輯器要帶一個這樣的游戲?我同意這個游戲沒什么用,但是Tetris告訴我們,在Emacs的世界里,沒有什么是不可能的。下面我列出了一些Emacs的一些非常有用的模式。
1. calc-mode:這是一個計算器,在RPN和infix模式下工作。支持大整數,無理數,復數,向量等等。你可以通過 C-x * * 打開和關閉這個模式。

2. epa-mode:可以打開吉阿米果的文件,修改并且加密保存。我甚至可以加密文件的一部分。

3. org-mode:人們用這個模式來編輯有組織的文檔,例如段落、列表等等。它也可以用來維護todo list,幾筆記,做項目計劃等等。

4. ido-mode:這個模式可以讓你方便的通過鍵盤切換不同的文件或者打開新的文件。

5. anything:這個類似 OS X 的 QuickSliver 工具,你打開這個模式,輸入任何東西,它就會返回任何可能的結果,包括文件,目錄,命令,man page等等。

6. occur-mode:在這個模式下,你可以通過正則表達式搜索所有Emacs打開的文件。

7. ibuffer:這個模式可以讓你同時操作很有文件。例如在所有的c文件中替換“foo”為“bar”。

8. tramp:你可以通過SSH,FTP或者sudo來打開文件。

還有很多很多Emacs的擴展能添加其他的很多功能。

結論
Emacs并不完美,我認為有以下缺憾:
1. 沒有多線程支持
2. Elisp不是一個很好的語言,很慢
3. 同一個文件中使用多個模式很難用(PHP + HTML + JavaScript)
4. 對支持的編程語言沒有語義支持,所以沒有智能提示,重構等功能

但是,總體而言我還是喜歡Emacs。也許將來Emacs會添加更多IDE的功能。我不知道現在的IDE將如何發展,我希望他們可以回頭看看Emacs,并且能提供高級用戶喜歡的編輯體驗。

 

原文鏈接

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!