1.接下來就是Ctags的安裝,
軟件包可以在http://ctags.sourceforge.net/下載。
接下來理所當然就是解壓縮,以及安裝
tar -zxf ctags-5.8.tar.gz
cd ctags-5.8
make
sudo make install //這句是要root權限的
『基本功能使用方法』
常用命令列表:
1. $ ctags –R * ($ 爲Linux系統Shell提示符)
2. $ vi –t tag (請把tag替換爲您欲查找的變量或函數名)
3. :ts (ts 助記字:tags list, “:”開頭的命令爲VI中命令行模式命令)
4. :tp (tp 助記字:tags preview)
5. :tn (tn 助記字:tags next)
6. Ctrl + ]
7. Ctrl + T
命令解釋:
“$ ctags –R *”:“-R”表示遞歸創建,也就包括源代碼根目錄(當前目錄)下的所有子目錄。“*”表示所有文件。這條命令會在當前目錄下產生一個“tags”文件,當用戶在當前目錄中運行vi時,會自動載入此tags文件。
Tags文件中包括這些對象的列表:
- 用#define定義的宏
- 枚舉型變量的值
- 函數的定義、原型和聲明
- 名字空間(namespace)
- 類型定義(typedefs)
- 變量(包括定義和聲明)
- 類(class)、結構(struct)、枚舉類型(enum)和聯合(union)
- 類、結構和聯合中成員變量或函數
VIM用這個“tags”文件來定位上面這些做了標記的對象。
剩下的命令就是定位這些對象的方法:
“$ vi –t tag” :在運行vim的時候加上“-t”參數,例如:
[/usr/src]$ vim -t main
這個命令將打開定義“main”(變量或函數或其它)的文件,並把光標定位到這一行。
如果這個變量或函數有多處定義,在VI命令行模式
“:ts”命令就能列出一個列表供用戶選擇。
“:tp”爲上一個tag標記文件,
“:tn”爲下一個tag標記文件。當然,若當前tags文件中用戶所查找的變量或函數名只有一個,“:tp,:tn”命令不可用。
最方便的方法是把光標移到變量名或函數名上,然後按下“Ctrl+]”,這樣就能直接跳到這個變量或函數定義的源文件中,並把光標定位到這一行。用“Ctrl+t”可以退回原來的地方。即使用戶使用了N次“Ctrl+]”查找了N個變量,按N次“Ctrl+t”也能回到最初打開的文件,它會按原路返回 。
更多功能通過命令man ctags或在Vim命令行下運行help ctags查詢。
注意:運行vim的時候,必須在“tags”文件所在的目錄下運行。否則,運行vim的時候還要用“:settags=”命令設定“tags”文件的路徑,這樣vim才能找到“tags”文件。
在完成編碼時,可以手工刪掉tags文件(帚把不到,灰塵不會自己跑掉^_^)。
『閱讀說明』
1)Vim存在多個配置文件vimrc,比如/etc/vimrc,此文件影響整個系統的Vim。還有~/.vimrc,此文件隻影響本用戶的Vim。而且~/.vimrc文件中的配置會覆蓋/etc/vimrc中的配置。這裏我們只修改~/.vimrc文件。
2)Vim的插件(plugin)安裝在Vim的runtimepath目錄下,你可以在Vim命令行下運行"set rtp“命令查看。這裏我們選擇安裝在~/.vim目錄,沒有就創建一個。
3)當本文說”在Vim命令行下運行cmdxx命令“時,意思是指在Vim的命令行模式下運行cmdxx命令,即在Vim的正常模式下通過輸入冒號":"進入命令行模式,然後緊接着輸入命令cmdxx。在後文描述中都會省略冒號":"輸入。
4)如果沒有說明“在Vim命令行下運行某命令”,則是在shell中執行該命令。
5)如果命令中間被空白符間隔或有與正文容易混淆的字符,我會用雙引號將命令與正文區分。所以讀者在實際操作時,不要輸入命令最前面和最後面引號。
6)本文關於組合快捷鍵的描述,形如a-b形式的快捷鍵表示同時按下a鍵和b鍵,而形如"a-b c"形式的快捷鍵,則表示先同時按下a鍵和b鍵,然後放開ab鍵,再按下c鍵。
7) 本人使用的系統是Ubunt 11.10 ,Vim版本是Vi IMproved 7.3
2.安裝Taglist
在http://www.vim.org/scripts/script.php?script_id=273上下載taglist_46.zip
直接將解壓好的文件複製到/usr/share/vim/vim74/doc和plugin文件夾中
unzip taglist_45.zip
此時會解壓出來兩個目錄--doc/,plugin/
將這兩個文件中的內容分別複製到/usr/share/vim/vim73目錄下的doc/和plugin/
cp doc/* /usr/share/vim/vim73/doc/
cp plugin/* /usr/share/vim/vim73/plugin/
沒那麼簡單,還要配置vimrc文件呢
在vimrc中加入下面兩個設置語句:
let Tlist_Use_Right_Window=1 “列表放在屏幕的右側 依據個人習慣
let Tlist_File_Fold_Auto_Close=1 “讓當前不被編輯的文件的方法列表自動摺疊起來, 這樣可以節約一些屏幕空間
進到剛纔已經tag好的目錄,
vim
:tag <你所要查看的函數,或者是結構體,等等> 這樣就能自動跳轉到那個文件(快速定位)
3.安裝winmanager.zip
地址:http://www.vim.org/scripts/download_script.php?src_id=754
安裝過程和Taglist 是一模一樣的!---解壓,複製,路徑也是一樣的哦……
一切都OK之後,當然還有一步---配置vimrc,不要看到配置的就畏縮哦,很簡單的啦:
let g:winManagerWindowLayout=’FileExplorer|TagList’
這樣就好了,就把winManager和TagList兩個都打開了,多方便哦……
好了,一切OVER,接下來就可以進入源代碼目錄咯:
vim
:WMToggle
這樣就能得到我們最終的界面了
4.安裝NEROTree
to show the file list
http://www.vim.org/scripts/script.php?script_id=1658
5.安裝omnicppcomplete
從http://www.vim.org/scripts/script.php?script_id=1520
- OmniCpp_GlobalScopeSearch : 全局查找控制。0:禁止;1:允許(缺省)
- OmniCpp_NamespaceSearch : 命名空間查找控制。
- 0 : 禁止查找命名空間
- 1 : 查找當前文件緩衝區內的命名空間(缺省)
- 2 : 查找當前文件緩衝區和包含文件中的命名空間
- OmniCpp_DisplayMode : 類成員顯示控制(是否顯示全部公有(public)私有(private)保護(protected)成員)。
- 0 : 自動
- 1 : 顯示所有成員
- OmniCpp_ShowScopeInAbbr : 選項用來控制匹配項所在域的顯示位置。缺省情況下,omni顯示的補全提示菜單中總是將匹配項所在域信息顯示在縮略信息最後一列。
- 0 : 信息縮略中不顯示匹配項所在域(缺省)
- 1 : 顯示匹配項所在域,並移除縮略信息中最後一列
- OmniCpp_ShowPrototypeInAbbr : 是否是補全提示縮略信息中顯示函數原型。
- 0 : 不顯示(缺省)
- 1 : 顯示原型
- OmniCpp_ShowAccess : 是否顯示訪問控制信息('+', '-', '#')。0/1, 缺省爲1(顯示)
- OmniCpp_DefaultNamespaces : 默認命名空間列表,項目間使用','隔開。
如:let OmniCpp_DefaultNamespaces = ["std', "MyNamespace"] - OmniCpp_MayCompleteDot : 在'.'號後是否自動運行omnicppcomplete給出提示信息。0/1, 缺省爲1
- OmniCpp_MayCompleteArray : 在"->"後是否自動運行omnicppcomplete給出提示信息。0/1, 缺省爲1
- OmniCpp_MayCompleteScope : 在域標識符"::"後是否自動運行omnicppcomplete給出提示信息。0/1, 缺省爲0
- OmniCpp_SelectFirstItem : 是否自動選擇第一個匹配項。僅當"completeopt"不爲"longest"時有效。
- 0 : 不選擇第一項(缺省)
- 1 : 選擇第一項並插入到光標位置
- 2 : 選擇第一項但不插入光標位置
- OmniCpp_LocalSearchDecl : 使用Vim標準查找函數/本地(local)查找函數。Vim內部用來在函數中查找變量定義的函數需要函數括號位於文本的第一列,而本地查找函數並不需要。