用vim替代source insight(ctags+taglist+)
V im tags 的使用
ctag 檔案的製作
不講究的話,可以在所解開的 source code 目錄下,下以下指令:
ctags -R *
這樣會有 source code 目錄下產生一個 tags 這個檔(可以使用 -f 選項來指定檔案名),裡頭就包含了整個 source code 的所有檔案的 tags 資訊,包括其下所有的子目錄下的檔案。ctags 已盡可能的做到聰明掃描檔案的能力,會忽略和程式碼無關的檔案。當然 ctags 還有許多精細的參數可以使用,請 man ctags 。
請注意,ctags 預設會將輸出檔排序,因此不必自行另外去排序。有排序有一個好處,那就是 V im 會去使用 binary search 的方式去搜尋,這樣會比較快。
一般的 tag 使用
如果就照上一節的方式產生 tag files,那麼只要在 source code 目錄下由 vim 去開啟檔案的話,會自動載入 tags 這個檔案,無需另行載入,否則要由 :set tags=your.tags 來指定 tags 檔。然後就是照一般使用 V im 線上說明一樣,游標移到識別字或函數名上,按 Ctrl+] ,要回到原處就按 Ctrl+T 。
請注意,V im 啟動時,工作目錄(vim 啟動時的所在目錄)名為 tags 的檔案會自動載入,$VIMRUNTIME/doc 及 $HOME/.vim/doc 目錄下的 tags 檔也會自動載入。而且,凡是載入的 tags 檔裡頭所有標誌文字都可以使用補全鍵來補全,別忘了這個好用的功能。
在目录树中自由使用tag
编辑vim的设置文件(_vimrc或.vimrc),添加两行
set tags=tags;
set autochdir
注意第一个命令里的分号是必不可少的。这个命令让vim首先在当前目录里寻找tags文件,如果没有找到tags文件,或者没有找到对应的目标,就到父目录中查找,一直向上递归。因为tags文件中记录的路径总是相对于tags文件所在的路径,所以要使用第二个设置项来改变vim的当前目录。
使用这两个技巧后,就可以在目录树中自由的浏览源程序了。
让你的vim能够查看函数列表(taglist)
图形界面下的很多编辑软件都可以列出当前编辑文件中的函数列表,以便在编辑的时候能够快速的跳转。vim虽然没有直接提供这种功能,但配合适当的工具和设定,可以完美的实现!
首先还是安装,vim不用装了,ubuntu中自带,用到的ctags需要自己安装一下,不要用旧的那个ctags,新的叫Exuberant Ctags ,apt安装即可:apt-get install exuberant-ctags。
然后按照vim.org上的安装说明 ,下载taglist_45.zip,解压到home目录下的.vim子目录中:
~/.vim$ unzip /home/fwolf/taglist_45.zip
Archive: /home/fwolf/taglist_45.zip
inflating: plugin/taglist.vim
inflating: doc/taglist.txt
进入$HOME/.vim/doc目录,打开VIM 运行“helptags .”命令,注意后面的点不要拉了,这是为了生成ctags帮助文件的索引,然后才能正常使用帮助。(原来vi帮助中的ctrl+]进入链接、ctrl+T返回也是这么来的)
现在,再启动vim,tags功能就可以用了:
大概用法:
在使用vim的时候,使用:Tlist命令切换函数列表的开、关。
按住ctrl键然后按两下w键在正常编辑区域和tags区域中切换。
在tags区域中,把光标移动到变量、函数名称上,然后敲回车,就会自动在正常编辑区域中定位到指定内容了,很方便的。
常用的几项.vimrc设置:
“禁止自动改变当前Vim窗口的大小
let Tlist_Inc_Winwidth=0
“把方法列表放在屏幕的右侧
let Tlist_Use_Right_Window=1
“让当前不被编辑的文件的方法列表自动折叠起来, 这样可以节约一些屏幕空间
let Tlist_File_Fold_Auto_Close=1