[轉]我是怎麽從vim切換到Emacs的?
以前我嘗試過很多次從vim換成emacs都失敗了。原因有很多。主要原因是vim確實是壹個非常強大的編輯器,當之無愧是emacs的主要競爭對手。vim有很多強大的功能,在emacs中很難找到對應的功能。當時還沒有水木emacs版本,如果有,情況會更好。還有壹個原因是我身邊幾乎沒有人用Emacs,現在也是。emacs入門比vim難多了。我說的入門,不是簡單的使用,而是高效的使用。vim的很多操作幾乎不需要配置就可以完成,但是沒有我的復雜。emacs文件,我不認為emacs比vim好。用我的。emacs,emacs絕對是最好的平臺(不僅僅是壹個編輯器),因為它是我的軟件,我的壹些常用功能以我的方式工作,我可以隨時實現我喜歡的功能。可能別人不喜歡這個操作,但是我喜歡。我可以讓emacs按照我喜歡的方式運作。幾乎沒有其他軟件能做到這壹點。我向emacs的過渡是壹個痛苦而偶然的過程。我曾經很認真地“學習”過emacs,寫了很多筆記。現在看來,這很傻。emacs不是學來的,而是用來的。很多功能不是大腦記住的,而是手記住的。我們不得不承認,有時候肌肉的記憶能力比大腦更強,而且快速實用。很多運動員不就是用大量訓練來提高肌肉對動作的記憶嗎?壹個偶然的機會,我發現了幾個vim無法替代的功能,於是我開始真正喜歡上了emacs。(註:我寫這篇文章的時候vim版本是6.2)首先,在編寫TeX文件的時候,可以快速輸入很多數學符號,方便生成dvi文件,快速輸入TeX特有的特殊符號。然後是Python模式,這是壹個非常好的Python的IDE,很容易寫Python程序,特別是在Python程序中,用縮進來表示語法結構,在Emacs中處理縮進很容易。將壹段代碼放入Python的解釋器並執行它,然後在解釋器中與它交互,這很容易。參見我的Python學習筆記。編輯C或C++時的壹些函數,如自動插入函數、饑餓刪除、m-SPC (m-x just-on-space)縮進函數(TAB),都是最美的格式。最重要的是,妳還可以選擇自己喜歡的c風格。當然也可以用vim,但是默認是用tab鍵格式化,缺點是不能保證程序在所有編輯器中的效果都壹樣,但是我以前是用TAB縮進的,因為不想輸入太多的空格。此外,vim不太擅長對壹段代碼進行重新索引。雖然g=等鍵也可以用,但是不如emacs裏的好用。vim中的許多編輯命令比emacs快得多,只要輸入幾個鍵就行。不過我覺得中國的emacs的思路是,工作多,就做好,不要讓用戶記住那些快捷鍵,根據用戶的習慣去猜測用戶(擁有者)的意思,不動聲色的去做(討好用戶)。比如在C中,我們習慣用tab鍵來縮進程序。然後用tab鍵完成M-x縮進行的功能。我們經常在輸入分號後輸入回車。嗯,emacs根據上下文猜測回車應該在哪裏,並自動輸入回車。妳要刪除很多空格,嗯,emacs會根據上下文只留壹個空格(M-x just-on-line)或者空行(M-x delete-blank-line)。如果妳想刪除M-x delete-blank-line下只有壹個空行,那麽刪除這個空行。其他功能也很有用。視圖代碼lisp 12c-cc-c(m-x comment-region)c-u c-c-c uncomment-region還有自動填充右括號、填充引號、填充花括號的功能。見Emacs的自動加半括號寫c程序的功能,輸入左邊大花展開符號自動填很多東西的縮寫擴展功能。還有飛咒的作用。Emacs知道主人是個粗心的人,自動提示主人自己錯了,但是emacs從來不把主人當傻子,不做巧妙的改變。只有高手真的承認我錯了(按M-$)(註:具體M-x命令記不清了。您可以使用C-h k來檢查壹個鍵綁定的功能,並將其記錄為幫助鍵綁定,或者您可以使用C-h w將其記錄為幫助where。我記得有個很有名的軟件,把用戶當傻子。它總是把壹個句子的第壹個單詞改大寫,自動把他認為不對的單詞改過來。每次我都想盡辦法關掉這個功能。還有自動填充的功能,M-q總能做對。還有版本控制的功能。emacs幾乎不需要所有者自己備份文件。他知道他應該在適當的時候備份文件。還有自動插入的功能,會根據環境自動增加當前文件的可執行權限。看到保存文件時會自動增加腳本的可執行權限並自動增加#!/bin/bash或者#!/bin/perl #!/bin/python .參見Emacs,創建文件時,自動添加模板的內容。header.el的擴展還可以在C文件的開頭自動插入和更新壹些信息,包括文件名、創建日期、修改次數,記錄誰在何時以及為什麽進行了修改。還有公司信息,作者信息,版權信息等等。