Chinaunix首页 | 论坛 | 博客
  • 博客访问: 440111
  • 博文数量: 80
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1916
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-11 22:01
个人简介

从事实时计算多年,熟悉jstorm/spark/flink/kafka/rocketMq, 热衷于开源,希望在这里和前辈们一起学习与分享,得到长足的进步!邮箱:hustfxj@gmail.com 我的githup地址是:https://github.com/hustfxj。欢迎和大家一起交流探讨问题。

文章分类

全部博文(80)

文章存档

2017年(11)

2015年(3)

2014年(33)

2013年(33)

分类: LINUX

2013-11-29 11:28:02

vim + ctags + taglist配置和使用

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

1安装ctags

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

1ubuntu安装

sudo apt-get install exuberant-ctags

( 或者下载 手动安装 download ctags-5.8.tag.gz (地址)

    tar xzvf ctags-5.8.tag.gz

    cd ctags-5.8

    ./configure

    sudo make

    sudo make install

)

至此,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 ctags命令

在自己的项目文件夹下执行 $ctags -R *  (不执行就起不到效果)  

注:“-R”表示递归创建,也就包括源代码根目录(当前目录)下的所有子目录。“*”表示所有文件。这条命令会在当前目录下产生一个“tags”文件, 当用户在当前目录中运行vi时,会自动载入此tags文件。

然后就可以入手了。

常用的命令:

熟练的使用ctags仅需记住下面七条命令:(很简单吧,呵呵)

       1 $ ctags R *    ($ Linux系统Shell提示符)

       2.   $ vi t tag       (请把tag替换为您欲查找的变量或函数名)

       3. :ts                (ts 助记字:tags list, :”开头的命令为VI中命令行模式命令)

3 安装taglist

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

具体步骤如下:

下载地址

解压文件

# unzip -d    taglist taglist_45.zip // 解压;

把该文件在~/.vim/目录中解压缩,这会在你的~/.vim/plugin~/.vim/doc目录中各放入一个文件:

       plugin/taglist.vim taglist插件

       doc/taglist.txt    - taglist帮助文件

       进入vim模式,输入命令:helptags ~/.vim/doc 使用下面的命令生成帮助标签;

       此后你就可以使用命令:help taglist.txt,查看帮助;

       之后你就可以使用命令:TlistOpen,显示下图

在屏幕右侧出现的就是taglist窗口,你从中可以看到在main.c文件中定义的所有tag:宏、定义、变量、函数等;你也可以双击某个tag,跳到该tag定义的位置;你还可以把某一类的tag折叠起来(使用了VIM的折行功能),方便查看,就像图中macrovariable那样。更多的功能,请查看taglist的帮助页,本文也会介绍一些常用功能。

4 taglist配置

修改.vimrc文件

?  Tlist_Ctags_Cmd选项用于指定你的Exuberant ctags程序的位置,如果它没在你PATH变量所定义的路径中,需要使用此选项设置一下;

?  如果你不想同时显示多个文件中的tag,设置Tlist_Show_One_File为1。缺省为显示多个文件中的tag;

?  设置Tlist_Sort_Type为”name”可以使taglist以tag名字进行排序,缺省是按tag在文件中出现的顺序进行排序。按tag出现的范围(即所属的namespace或class)排序,已经加入taglist的TODO List,但尚未支持;

?  如果你在想taglist窗口是最后一个窗口时退出VIM,设置Tlist_Exit_OnlyWindow为1;如果你想taglist窗口出现在右侧,设置Tlist_Use_Right_Window为1。缺省显示在左侧。

?  在gvim中,如果你想显示taglist菜单,设置Tlist_Show_Menu为1。你可以使用Tlist_Max_Submenu_Items和Tlist_Max_Tag_Length来控制菜单条目数和所显示tag名字的长度;

?  缺省情况下,在双击一个tag时,才会跳到该tag定义的位置,如果你想单击tag就跳转,设置Tlist_Use_SingleClick为1;

?  如果你想在启动VIM后,自动打开taglist窗口,设置Tlist_Auto_Open为1;

?  如果你希望在选择了tag后自动关闭taglist窗口,设置Tlist_Close_On_Select为1;

?  当同时显示多个文件中的tag时,设置Tlist_File_Fold_Auto_Close为1,可使taglist只显示当前文件tag,其它文件的tag都被折叠起来。

?  在使用:TlistToggle打开taglist窗口时,如果希望输入焦点在taglist窗口中,设置Tlist_GainFocus_On_ToggleOpen为1;

?  如果希望taglist始终解析文件中的tag,不管taglist窗口有没有打开,设置Tlist_Process_File_Always为1;

?  Tlist_WinHeight和Tlist_WinWidth可以设置taglist窗口的高度和宽度。Tlist_Use_Horiz_Window为1设置taglist窗口横向显示;

5 常用快捷键

在Taglist窗口按

F1:         打开帮助

回车键:   跳到光标所在的标记的定义处(如将光标移到main函数,按回车键)

o:    新建一个窗口,跳到标记定义处

p:    预览标记定义(仍然在taglist窗口)

空格:      显示标记的原型(如函数原型)

u:    更新标记列表(比如源文件新增了一个函数,并在保存后,可在taglist窗口按u)

s:     选择排序字段(暂时我也不知道什么意思)

d:    删除光标所在的taglist文件(如用vi打开了两个文件f1.c,f2.c可以删除f1.c的标记)

x:    放大/缩小taglist窗口

+:    展开(指标记)

-:     折叠

*:    全部展开

=:    全部折叠

[[:    将光标移到前一个文件的起点

]]:    将光标移到后一个文件的起点

q:    退出taglist窗口

F1:  关闭帮助

可以用“:TlistOpen”打开taglist窗口,用“:TlistClose”关闭taglist窗口。或者使用“:TlistToggle”在打开和关闭间切换。在我的vimrc中定义了下面的映射,使用“,tl”键就可以打开/关闭taglist窗口:

阅读(2728) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~