安装Exuberant Ctags及Tag List插件

为了方便使用Vim阅读源代码,Tag List 这个Vim插件不可或缺。这是一个用来浏览源代码的Vim插件,使用它我们可以概览源代码的结构并在各个源文件中跳转浏览,非常方便。

    Tag List插件需要Ctags这个程序的支持(动态生成tag file),Ctags 是一个用来为源文件中的标识符(如变量、函数、类成 员、宏定义等)创建索引文件(tag file)的程序。这些索引让我们能够快速便利地在编辑器或其它工具中定位到指定标识符的定义。最初的Ctags由Ken Arnold编写并首先出现在BSD Unix中,现在大多数的Unix-like系统中都已经内置了这个工具,当然,也包括了MacOSX 。

然而,系统自带的Ctags功能比较简单,支持的语言也少(如不支持C++、Java等语言),所以推荐安装更强大的Exuberant Ctags。Exuberant Ctags最初由Darren Hiebert编写并随Vim发布,但在Vim6时独立出来为一个项目,它提供了对更多的编程语言(支持多达41种语言,并可以添加自定义语言),同时兼 容原始Ctags的索引文件格式,除此之外很多的Vim插件也只支持Exuberant Ctags,所以最好把它装上。

接下来我们在Mac下编译安装Exuberant Ctags:

首先到官方网站下载Exuberant Ctags的源代码,最新版本是5.8。

接着解压到本地并进入文件夹,确保你的Mac上面已经安装了XCode之后,就可以开始编译安装Exuberant Ctags:

./configure make sudo make install

根据这几个简单的步骤,Exuberant Ctags就会被安装在/usr/local/目录下了,但是由于系统中原先已经内置了Ctags,如果没有将/usr/local/bin添加到系统路 径中的话,默认执行的是/usr/bin/ctags,可以在命令行中执行:

which ctags

如果返回的不是/usr/local/bin/ctags,那么就需要在~目录下的.profile文件中加入以下语句:

export PATH="/usr/local/bin:/usr/local/sbin:$PATH"

然后命令行中执行:

source ~/.profile

或者直接在~/.vimrc中加入以下配置语句:

let Tlist_Ctags_Cmd="/usr/local/bin/ctags"

不过还是推荐第一种做法,因为通常用户自行安装的软件安装到/usr/local目录下会比较合适,这样做的好处可以参考这篇文章,所以不妨先把路径加 到$PATH变量中。

Exuberant Ctags安装完毕之后就可以安装Tag List插件了,在官方网站上下载Tag List然后解压,将plugin文件夹中的taglist.vim复制到~/.vim/plugin/中,将doc文件夹中的taglist.txt复 制到~/.vim/doc/中,如果~目录下没有对应的文件夹请自行创建。

最后,处理Tag List的帮助文件,先命令行进入~/.vim/doc文件夹,然后启动Vim,在Vim中执行(注意命令中的”.”):

:helptags .

安装完毕!接下来就是对Tag List进行配置了,Tag List提供了很多的配置参数,用户可以根据自己的使用习惯和需要在Vim的配置文件中进行设置,查看详细的帮助信息可以在Vim中执行:

:help taglist.txt

下面列举一些常用的配置:

在~/.vim/plugin/taglist.vim中添加:

let Tlist_Auto_Open=0 " Let the tag list open automatically
let Tlist_Auto_Update " Update the tag list automatically
let Tlist_Compact_Format=1 " Hide help menu
let Tlist_Ctags_Cmd='ctags' " Location of ctags
let Tlist_Enable_Fold_Column=0 "do show folding tree
let Tlist_Process_File_Always=1 " Always process the source file
let Tlist_Show_One_File=1 " Only show the tag list of current file
let Tlist_Exist_OnlyWindow=1 " If you are the last, kill yourself
let Tlist_File_Fold_Auto_Close=0 " Fold closed other trees
let Tlist_Sort_Type="name" " Order by name
let Tlist_WinWidth=40 " Set the window 40 cols wide.
let Tlist_Close_On_Select=1 " Close the list when a item is selected
let Tlist_Use_SingleClick=1 "Go To Target By SingleClick

你可能感兴趣的:(linux)