在Linux系統下進行開發的時間零零散散算起來也有將近一年半了,剛開始的時候用的最原始的VIM進行簡單的代碼編輯,那段時間讓我熟練了VIM的命令、編輯模式切換,方向移動和命令模式下的常用命令,第一次認識到了VIM的強大。之後參與的項目開發,雖說使用的是Linux系統,但是應用代碼的主要編輯工作是在Source Insight下完成的,VIM用的也就少,慢慢地用起來有點手生。但是內心對於VIM的那種簡潔、直接和高效依然戀戀不捨,常常會溫習VIM的命令和技巧,一直在找機會掌握VIM進行完成的項目開發。直到這個項目,環境、機會(天時、地利、人和)俱全,我進入了狀態~~
www.2cto.com 一、使用VIM進行項目開發之前的基礎Linux系統中shell基本命令、常用命令的熟練使用Linux系統檔案系統知識、概念的基本理解能夠使用VIM完成基本的文本編輯工作,熟悉三種模式和基本命令現在的Linux發行版基本都已經裝好了VIM,如果沒有,那就需要自己進行安裝,最好是VIM7.0以上版本,不過大多數發行版的源預設都是最新版本,除非是自己使用源碼按照,就需要注意。二、VIM的設定檔及推薦外掛程式VIM的設定檔:.vimrc,一般都是在使用者的home主目錄下,該檔案決定了VIM啟動時的基本環境和可使用命令、工具等,在VIM的使用中具有舉足輕重的地位。網路上有很多大能的.vimrc檔案提供參考、下載,大都非常地複雜,強大,而且與系統內容和其使用的外掛程式高度關聯,因此在下載他們的檔案使用時,最好是確保環境一致,否則很多功能會使用不了,偶爾還可能會出一點莫名其妙的問題。在稍後的文章中我會貼出本人稍顯粗糙的.vimrc。VIM的強大在於它的高度可定製性,你完全可以將它打造成屬於你個人的編輯器或者說IDE,這是通過大量的外掛程式和.vimrc設定檔協同實現的。在VIM的官網上你能找到各種外掛程式,如果沒找到你需要的,你還可以直接開發外掛程式,然後提供給他人使用。本人還沒到這個水平,在這推薦幾款常用的外掛程式給大家:
www.2cto.com buffexplorer外掛程式:用來進行緩衝區的瀏覽和切換,多檔案編輯不可缺少的工具taglist外掛程式:用來查看代碼中的變數、宏、函數等單元,並進行定位、切換,開發必不可少lookupfile外掛程式:用來在目前的目錄環境中尋找檔案、緩衝區等,並進行切換,五星級外掛程式genutils外掛程式: 使用lookupfile外掛程式需要用到的通用函數外掛程式NERD_Tree外掛程式:用來在VIM中顯示指定目錄的分類樹並進行切換,類似windows資源管理員中的分類樹效果,對於在整個檔案系統中尋找檔案很實用這些外掛程式在VIM官網上都能找到,下載最新版本就可以,然後就是外掛程式的安裝了。VIM在使用者的主目錄下需要一個運行時目錄:.vim/,如果沒有就手動建立,之後把下載的外掛程式全部解壓到.vim/目錄裡面,就完成了外掛程式的安裝。這個時候在.vim/目錄下至少會有兩個目錄:doc/ 和 plugin/,doc目錄存放各外掛程式的協助文檔,plugin目錄存放各外掛程式的功能實現vim 指令碼。但是對於lookupfile外掛程式,正確安裝的話,在.vim/下還應該有一個autoload/目錄,裡面存放有lookupfile 和genutils外掛程式的autoload版本vim指令碼,它們定義了plugin/目錄中lookupfile和genutils指令碼使用的一些函數。如果沒有autoload目錄,lookupfile外掛程式將無法使用,會提示類似錯誤:“E117:Unknown Function lookupfile#OpenWindow(...)"。因此如果你安裝完畢後,發現沒有autoload目錄,你需要手動建立該目錄,然後將lookupfile外掛程式和genutils外掛程式包中的autoload版本vim指令碼拷貝進去。外掛程式協助文檔的產生:使用vim時,必須要掌握的技能之一就是熟練使用vim的線上協助文檔,在裡面能找到你所需要的一切,但你要知道你想知道的東西是什麼。上述的各個外掛程式都有完善的協助文檔,但需要將它們添加進vim的線上協助系統中,以方便尋找。這一步很簡單:
www.2cto.com 切換到vim運行時目錄然後開啟vim:cd ~/.vim ; vim在命令模式下輸入如下命令: :helptags doc敲斷行符號執行命令之後就OK了,現在可以查看一下lookupfile的協助: :help lookupfile.配置好.vimrc檔案後,到此為止VIM自身的環境就準備完畢了,接下來就是外部輔助開發環境。三、VIM外部輔助開發環境:VIM+Ctags+Cscope單獨VIM一個工具總是不夠的,UNIX中的哲學是每一個工具專一地完成一件小事,多個工具的聯合完成一件大事,從而用有限的工具實現無限的可能。VIM主要是把編輯這一件事實現到極致,通過外掛程式提供一些額外的便利增強編輯,但對於代碼的結構化、資料庫化管理顯然超出了VIM的功能範疇,需要更專一的工具來完成,這就是Ctags 和 Cscope工具。ctags工具提取代碼檔案中的所有tag,包括全域變數、宏、函數、資料類型等,記錄這些tag在檔案中的位置和交叉引用,以提供在代碼中進行這些tag之間的跳轉,方便追本溯源。
www.2cto.com cscope工具也是提取代碼檔案中的所有tag,但是它記錄的資料更詳細,通過掃描tag在檔案中的使用,建立一個資料庫,從而提供尋找定義、函數調用及被調用、文本、標頭檔等更複雜強大的搜尋功能。進行項目開發時,這兩個工具幾乎不可缺少,VIM+Ctags+Cscope一般也是項目開發的整體環境(本人現在的開發環境),這個環境已經可以完成一個IDE的開發必備工作了。關於ctags和cscope工具的下載、安裝就不在此詳述了,安裝好以後,可以通過以下的命令查看對應的協助手冊:
1man ctags2man cscope 在之後的文章中我會寫一個使用這兩個工具的shell指令碼,以進行項目開發過程中的管理和更新。