vim + ctags + taglist配置和使用

通过tags 文件来阅读源代码:

tags 文件是通过命令:ctags -R 生成索引文件(源代码目录下所有的结构体定义,函数的定义,宏定义
都可以通过索引文件找到它所在的路径文件)
ctags + ]  跳转到指定符号所定义的文件 
ctags + t  返回 
注意:
必须让vi编辑器能寻找到tags文件 
修改用户主目录下的.vimrc文件,添加自己tags文件路径,这样vi编辑器就可以找到我们的tags啦
set tags+=/home/linux/fs4412/u-boot/u-boot-2013-learn/tags


taglist依赖于ctags,所以要先装ctags,否则taglist装了也没法用!

1、首先安装ctags

首先是ctags的安装,推荐使用exuberant ctags,我们可以从其官方网站上下载它的源码包,进行解压缩,编译,安装即可。
1)ubuntu安装

sudo apt-get install exuberant-ctags

至此,ctags的安装已经完成,可以使用ctags命令来检测时候完成安装。

检测:

在自己的项目文件夹下执行 $ctags -R *  (不执行就起不到效果)   
注:“-R”表示递归创建,也就包括源代码根目录(当前目录)下的所有子目录。“*”表示所有文件。这条命令会在当前目录下产生一个“tags”文件, 当用户在当前目录中运行vi时,会自动载入此tags文件。
然后就可以入手了。
常用的命令:
熟练的使用ctags仅需记住下面七条命令:(很简单吧,呵呵)
       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

2、安装taglist 

下面我们来进行taglist的安装,同ctags的安装一样这里我们也是去其官方网站下载解压其源码包。

具体步骤如下:

下载地址 

解压文件
# unzip -d    taglist taglist_45.zip // 解压到 taglist

   我们首先在家目录下创建.vim文件(mkdir .vim)   以便于存放vim的插件。
然后把我们下载到的taglist源码包进行解压,把其中的doc和plugins目录拷贝到.vim文件夹下。
进入到vim在命令模式下输入helptaglist~/.vim/doc即完成了taglist的安装。在vim中输入Tlist,如果出现如下画面则证明安装成功。
完成了taglist和ctags的安装,但是这时ctags和taglist还没有联系起来。为此,我们需要修改~/.vim/plugin/taglist.vim文件,找到if !exitsts(loaded_taglist)这一行,并在其前面添加let Tlist_Ctags_Cmd="/usr/local/bin/ctags"
ps:在这里需要注意的是我们在设置直线需要察看我们ctags可执行可执行路径到底是在哪里,我们可以进入到上述目录,一直找到具体的可执行的文件ctags,并将其路径赋给 Tlist_Ctags_Cmd (例如我的路径是 /usr/local/bin/ctags/ctags
vim+taglist+ctags阅读代码
为了使用vim+taglist+ctags来阅读代码,我们首先必须生成函数和变量的符号信息。这一步我们使用ctags完成。
例如我们使用我们刚才下载的ctags的源码包为例。
//生成tag
执行 ctags -R *(-R递归作用)
//检查是否生成了tags
ls -l tags
生成tag以后我么就可以进行察看了,具体步骤见如下截图
有时我们想察看的函数在其他代码文件中定义,这是我们只要将光标定位到想察看的函数上,然后按ctr+]键就可以进行察看了,按ctr+O可以跳回到源文件中。

具体 vim 高阶应用见 http://easwy.com/blog/archives/advanced-vim-skills-catalog/


发布了20 篇原创文章 · 获赞 6 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/pan337520/article/details/54286431