工欲善其事,必先利其器。一個強大的開發環境可以大大提高工作效率。好吧,我知道這是廢話。。。不過,我想一定有很多跟我一樣打算進入Linux平台開發的新手,一開始都為找不到一個像Windows下的VS那樣可以一鍵安裝並且功能幾乎完美無缺的開發工具而郁悶不已,甚至打算放棄可愛的Linux。所幸的是,通過幾天努力,我總算配置出了一個還算過的去的基於Vim的開發環境。這個開發環境除了基本的Vim外,包括Ctags,Taglist,Cscope,SuperTab,OmniCppComplete,Winmanager,NERDTree和MiniBufExplorer等組件。
1,安裝使用Ctags
Ctags遍歷源代碼文件生成tags文件,這些tags文件能被編輯器或其它工具用來快速查找定位源代碼中的符號(tag)。比如,tags文件就是Taglist和OmniCppComplete工作的基礎。
這裡介紹從源代碼包安裝,安裝步驟跟大多數軟件的從源代碼安裝步驟一樣。
1)從http://ctags.sourceforge.net/下載源代碼包後,解壓縮生成源代碼目錄,
2)然後進入源代碼根目錄執行./configure,
3)然後執行make,
4)編譯成功後執行make install。
到此,Ctags已安裝成功。
使用Ctags的也很簡單。進入我們的項目代碼根目錄,執行以下命令:
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
各 個選項意義可參考man ctags幫助文檔(其實上面命令的這麼多選項主要是為OmniCppComplete插件做准備)。命令執行後,會在源代碼目錄生成tags文件。Vim默認會讀取當前目錄下的tags文件,所以不需要修改~/.vimrc進行配置。此時,我們已經具有定義跳轉的功能了。有兩組快捷鍵是最常用的。
1)Ctrl-] 跳轉到光標所在tag的定義。
2)Ctrl-t 回到上次跳轉前的位置。
2,安裝使用Taglist
Taglist是vim的一個插件,提供源代碼符號的結構化視圖。
插件的安裝位置有多個可以選擇,這裡我們選擇安裝到~/.vim目錄,沒有就自己新建一個。
1)從http://www.vim.org/scripts/script.php?script_id=273下載安裝包。
2)進入~/.vim目錄,將Taglist安裝包解壓,解壓後會在~/.vim目錄中生成幾個新子目錄,如plugin和doc(安裝其它插件時,可能還會新建autoload等其它目錄)。
3)進入~/.vim/doc目錄,在Vim下運行"helptags ."命令。此步驟是將doc下的幫助文檔加入到Vim的幫助主題中,這樣我們就可以通過在Vim中運行“help taglist”查看taglist幫助。
4)打開配置文件~/.vimrc,加入以下兩行:
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
更多選項可通過在Vim運行help taglist查看。
到此安裝已經完成。
在Vim下運行TlistToggle就可以打開Taglist窗口,再運行一次TlistToggle則關閉。我的Taglist如下:
我們可以通過Ctrl-w快捷鍵在Taglist窗口和編輯區切換,在Taglist窗口選擇
3,安裝使用Cscope
Cscope提供交互式查詢語言符號功能,如查詢哪些地方使用某個變量或調用某個函數。
Cscope已經是Vim的標准特性,默認都有支持,官方網址為http://cscope.sourceforge.net/。
1)在Vim下運行version查看Vim支持哪些特性,前面有前綴符號+的為支持。如果支持Cscope,則直接進入2),否則下載Cscope源代碼包編譯安裝。步驟同Ctags安裝。
2)確定Vim已支持Cscope後,將文件http://cscope.sourceforge.net/cscope_maps.vim下載到~/.vim/plugin目錄。
到這裡,我們就可以開始使用Cscope了。
1)使用Cscope需要生成cscope數據庫文件。進入項目代碼根目錄運行命令:
cscope -Rbq -f path/xxx.out
命令運行後會生成xxx.out文件,即cscope數據庫文件。更多用法參考man cscope文檔。
2)進入項目代碼根目錄,在Vim下運行命令:
cs add path/xxx.out
此命令將cscope數據庫載入Vim。