Linux系統中很多東西都是以指令碼代碼、設定檔的形式存在,使用Linux系統時,需經常對這些檔案進行編輯。很顯然,如果沒有文字編輯器,江湖之路寸步難行。
我的選擇是Vim。Vim是Linux系統上的最著名的文本/代碼編輯器,也是早年的Vi編輯器的加強版,被譽為文本/代碼編輯器之中最為優秀經典的上古神器。 它之所以會獲得如此美譽,我想主要有以下原因:1.它古老而神秘,學習曲線陡峭,難以駕馭,但是一旦學會則受益匪淺。如今被看作是高手、Geek們專用的編輯器。所以儘管 Vim 已經是古董級的軟體,但還是有無數新人迎著困難去學習使用。 2.輕便,無需多言,當僅僅只需要對某一文字檔(比如指令碼代碼、設定檔)進行簡單的編輯的時候,所使用的工具當然是越輕便越好。Vim同時也是閱讀文字檔的利器。 3.經典巧妙的編輯方式及強大的功能。它全程使用鍵盤操作,使用者必須記住一堆快速鍵、按鍵組合以及各種命令才能開始使用,一旦使用熟練則編輯效率遠超其餘編輯器,而且具有各種外掛程式、文法高亮、代碼補全、色彩配置等極其豐富的資源以及靈活的配置;
我主要在以下情況下使用Vim: 1.用來修改伺服器系統的設定檔; 很多時候, Linux 作為伺服器是不會開啟圖形介面的,當需要遠程操作時,只能利用 SSH “命令字元式”的 Shell 介面對其進行操作,這種情況下,Vim自然是首選。 2.用來閱讀核心原始碼和系統的指令碼; 理由同上。 3.用來寫簡單的程式,一般都是單檔案的程式,或多檔案但是只有少數幾個檔案的項目,比如學習一門程式設計語言的時候做練習題,喜歡看到檔案夾內乾乾淨淨,不喜歡一大堆類似.project的檔案; 4.裝B,花花綠綠的全文本字元介面,很酷。
不適合Vim使用的情境: 1.大的編程項目,大的項目還是最好使用IDE,如果要遠端連線沒有圖形介面的伺服器寫大項目,最好還是在伺服器上建立代碼倉庫;理由:VIM沒有好的專案管理功能,VIM的自動補全只建立在文本匹配上,沒有程式語言的語義分析功能。 2.對內容的輸入要求不高,但是經常需要設定顯示格式,且每個動作之間本身就有很多的停頓的工作,用其他GUI編輯器(如LibreOffice Writer)效率反而比VIM高。
有人說,Vim是“成也外掛程式、敗也外掛程式”。Vim靈活的配置和豐富的外掛程式極大地增強了它的功能,但是也極大地增加了我們管理Vim的難度。首先,在使用Vim之前,必須經過適當的配置,而Vim的配置又極其繁瑣。所以網上有很多諸如“萬能配置”、“最強配置”的文章,這些都可以參考。但是這些文章中有些存在很多錯誤,甚至前後內容重複、衝突,而且這些文章是“授人以魚,而不是授人以漁”,它們給出的配置雖然可以照抄,但是經常會讓人不明所以。 Vim的外掛程式豐富,在網上不乏使用各種外掛程式將Vim配置成強大IDE的文章,但是Vim的外掛程式管理非常困難,因為每安裝一個外掛程式,都需要將該外掛程式的檔案分別放到Vim安裝路徑下的plugin、autoload、syntax、doc等目錄下。好在是Vundle橫空出世,它不僅解決了Vim外掛程式在檔案系 統中分散的問題,同時能夠自動搜尋和下載外掛程式。
安裝和配置Vim
使用Vim之前當然需要先安裝,不過在Ubuntu中這都不算個事,一條 sudo aptitude install命令就可以搞定。由於Vundle搜尋和下載外掛程式需要git,所以需要同時安裝vim、gvim和git,如下:
sudo aptitude install vimsudo aptitude install gvimsudo aptitude install git
然後,在使用者的主目錄中建立 .vim 目錄,在 .vim 目錄中建立 bundle 目錄,以後Vundle自動下載的外掛程式都儲存在這裡。然後,進入 Bundle 目錄,使用 git clone 命令下載vundle。
下面開始展示我的設定檔(主目錄下的 .vimrc 檔案)。我的配置不同於網上流傳的“萬能配置”、“最強配置”。我的配置是能夠達到我想要的效果的 “最簡單配置”。下圖是第1到17行,這裡配置了Vundle,使用Vundle來管理外掛程式。在網上的一些配置中,常把Vundle的配置放到設定檔的最後,這是不對的。Vundle的配置必須放到最前面。(如果不用Vundle,用Pathogen外掛程式也一樣要把配置放到最前面。)這是因為,只有 Vundle外掛程式運行以後,Vim才會到 ~/.vim/bundle 目錄下載入其它的外掛程式,如果Vundle沒有先運行,Vim當然找不到下載的外掛程式了。