安装和使用Vim+Taglist+Ctags+cppcomplete+SuperTab

2011年10月9日 发表评论 阅读评论

Taglist和Ctags介绍
Taglist是Vim的源代码浏览插件,提供了在Vim中查看文件中包含的函数列表和类的方法类表的功能。Taglist功能的实现要依赖于Ctags。Ctags是一个用于产生代码索引文件的插件,其产生的索引文件用于帮助文本编辑器或其他工具快速,准确定位符号在代码文件中的位置。Ctags可以支持很多很多语言。。。

安装Ctags?
推荐使用Exuberant Ctags,其下载网址是 http://ctags.sourceforge.net/ .
下载了源代码 ctags-**.tar.gz后解压缩,切换到其目录进行编译,安装

1../configure
2.make
3.suod make install

至此,Ctags安装完成。

安装Taglist

1.在 http://www.vim-taglist.sourceforge.net/screenshots.html 下载最新版的Taglist软件包。
2.在个人用户目录下创建  .vim 目录,将taglist_**.zip中的内容解压到该目录。
3.进入Vim,在命令模式下输入命令 "  helptags~/.vim/doc "即可完成Taglist的安装。
4.输入命令“ Tlist ”检查是否安装成功。

把Ctags和Taglist联系起来

安装好Ctags和Taglist后,需要把它们联系起来。
修改  ~/.vim/plugin/taglist.vim 文件,找到

if !exists(‘loaded_taglist’)

这一行,在其前面添加

let Tlist_Ctags_Cmd="/usr/bin/ctags"

OK,Vim+Taglist+Ctags安装完成!下面介绍如何使用使用 Vim+Taglist+Ctags 阅读代码

使用Ctags和Taglist

1.  生成tags文件
在目录树的根目录里,使用命令:ctags -R 或 ctags –recurse
如: ctags -R src/* ,则会在当前目录下生成 tags 文件

要生成 cppcomplete 需要的 tags 文件的话,需要运行下面的命令:
ctags -n -f cppcomplete.tags –fields=+ai –C++-types=+p * -L cscope.files

注意,参数"-L cscope.files" 仅仅是借用了cscope生成的文件索引来帮助ctags去查询相关工程文件生成tags。

2.  编辑 vim 配置文件 .vimrc
在 .vimrc 文件中添加:

set tags=tags;
set autochdir

注: 第一个命令里的分号是必不可少的。这个命令让vim首先在当前目录里寻找tags文件,如果没有找到tags文件,或者没有找到对应的目标,就到父目录 中查找,一直向上递归。因为tags文件中记录的路径总是相对于tags文件所在的路径,所以要使用第二个设置项来改变vim的当前目录。

当然你如果想直接使用绝对路径,这样也是可以的:

set tags=/home/xxx/myproject/tags

另外,在 Vim 配置文件 ~/.vimrc 中添加:

filetype plugin on
"let Tlist_Ctags_Cmd = ‘/usr/bin/ctags’ “设置ctags命令目录
let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,只显示当前文件的
let Tlist_Exit_OnlyWindow =  1 "如果taglist窗口是最后一个窗口,则退出vim
"let Tlist_Use_Right_Window = 1 “让taglist窗口在右侧显示

3. 打开 Vim 前使用命令 ctags -R 产生tags文件, Vim 在启动时会自动查找并加载tags文件。

打开 Vim 之后,使用命令 :Tlist 激活 Taglist; 按两次  Ctrl + W 在两个窗口来回跳转;Ctrl + ] 或 回车键 查看函数定义(前者在 Taglist 窗口显示, 后者在源文件窗口显示), Ctrl + O 返回源文件。

Taglist 快捷键
回车键      跳到光标所在的标记的定义处(如将光标移到main函数,按回车键)
o      新建一个窗口,跳到标记定义处
p      预览标记定义(仍然在taglist窗口)
空格      在窗口的最下面显示标记的原型(如函数原型)
u      更新标记列表(比如源文件新增了一个函数,并在保存后,可在taglist窗口按u)
s      更改排序方式,在按名字排序和按出现顺序排序间切
d      删除光标所在的taglist文件(如用vi打开了两个文件f1.c,f2.c可以删除f1.c的标记)
x      放大/缩小taglist窗口
+      展开(指标记)
-      折叠
*      全部展开
=      全部折叠
[[      将光标移到前一个文件的起点
]]      将光标移到后一个文件的起点
q      退出taglist窗口

最方便的方法是把光标移到变量名或函数名上,然后按下 Ctrl-] , 用 Ctrl-O 退回原来的地方。

使用cppcomplete

下载地址:http://www.vim.org/scripts/script.php?script_id=527

下载后放到文件夹 ~/.vim/plugin/ 即可.

cppcomplete的使用我只是简单的发现它可以根据上述方法生成的tags文件来自动补全类型成员。

使用很简单,就是在你需要补全类型成员时,按F8键就可以拉。它一般第一次使用时,需要让你确认是使用已有的tags文件还是再生成一次。一般我们自己控制生成tags文件的时机,它就使用就行拉。

但它也受到ctags的分析能力比较差的限制,可能不是每次都能帮到你。

SuperTab插件 : 简化补全代码的快捷键, 按 Tab 键即可(以前需要按 Ctrl + X, Ctrl + O )。

1.点此下载 SuperTab 插件, 放入插件文件夹内;
2.用 Vim 打开 supertab.vba, 并输入  :so% ;
3.敲回车后完成安装。
配置 SuperTab :

vimrc中添加:

let g:SuperTabRetainCompletionType=2
" 0 – 不记录上次的补全方式
" 1 – 记住上次的补全方式,直到用其他的补全命令改变它
" 2 – 记住上次的补全方式,直到按ESC退出插入模式为止

let g:SuperTabDefaultCompletionType="<C-X><C-O>"
" 设置按下<Tab>后默认的补全方式, 默认是<C-P>,
" 现在改为<C-X><C-O>. 关于<C-P>的补全方式,
" 还有其他的补全方式, 你可以看看下面的一些帮助:
" :help ins-completion
" :help compl-omni

之后就可以用 Tab 代替 Ctrl + X, Ctrl + O 了。


转载请注明来自:[闪电博客]http://shandian.biz/1708.html

分类: 电脑知识 标签:
  1. 本文目前尚无任何评论.