1.ctags
        下载ctags源码ctags-5.6.tar.gz
(2)解压并安装
假设在家目录下taogle用户的目录下:
tar zxvf ctags-5.6.tar.gz
cd ctags-5.6
./configure && make && make install
(3)使用
<1> 对于一个工程文件夹如:cd  /home/taogle/vimPlungTest/src
<2> 建立ctags文件,在该目录下运行 ctags -R  
        —— "-R"表示递归创建,也就包括源代码根目录下的任何子目录下的源程式(如果你的源码是多层的目录, 就去最上层的目录)。从而在src目录下建立了一个“tags”文件,"tags"文档中包括这些对象的列表。
如果修改程序后,比如增加了函数定义,删除了变量定义,tags文件不能自动rebuild,必须再次在当前"tags"文件所在的目录下运行 $ctags -R
l 用#define定义的宏
l 枚举型变量的值
l 函数的定义、原型和声明
l 名字空间(namespace)
l 类型定义(typedefs)
l 变量(包括定义和声明)
l 类(class)、结构(struct)、枚举类型(enum)和联合(union)
l 类、结构和联合中成员变量或函数
VIM用这个"tags"文档来定位上面这些做了标记的对象
注意:
运行vim的时候,必须在"tags"文档所在的目录下运行。否则,对于该例子还要在运行vim的时,用  " :set tags= /home/taogle/vimPlungTest/src " 命令来设定"tags"文档的路径,这样vim才能找到"tags"文档。
如果经常在这个工程编程的话,可以将 " set tags= /home/taogle/vimPlungTest/src "这句话写进~/.vimrc 文件中去直接作为vim的配置文件。当然这个路径随着工程目录的变化要随时作调整。(切记tags后面的"="一定不能有空格,否则vim会报 E518错误 )
强烈推荐以下的方法:在vimrc中加入以下的句子:
        if getfsize("vimscript")>0
                    source   vimscript
        endif
然后在工程tags文件所在的目录下(如:" /home/taogle/vimPlungTest/src" )新建一个叫做“vimscript”的文件,在文件中添加以下的内容:
     set tags= /home/taogle/vimPlungTest/src    "或者 /home/taogle/vimPlungTest/src/tags
     set tags+= /home/taogle/vimPlungTest/src/tags.lib  "这一句通常可以没有
这样每次启动vim就会自动运行vimscript脚本中的句子,从而可以自动找到tags所在的目录。
并在vimscript文件中加入如下一行就可实现在vim中每次打开vim编辑时都重新生成关于c++的tags文件:
   ! ctags -R --c++-kinds=+p --fields=+iaS --extra=+q --language-force=c++
      ——  ! command   //实现在vim中运行shell
或者为了更加简单 ,在vimrc中添加以下的句子,就可以在进入vim后,按下Ctrl+F12组合键(每当有代码更新的时候,时不时按下以更新tags),在当前目录下寻找所有的c/c++文件,从而在当前目录下建立tags文件:
 
map :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
快捷键:
<1>     把光标移到变量名或函数名上,然后按下"Ctrl-]"。用"Ctrl-o"或“Ctrl-t”退回原来的地方。 
<2>     在函数中移动光标
[{     转到上一个位于第一列的"{"
}]     转到下一个位于第一列的"{"
{      转到上一个空行
}      转到下一个空行 ([ and ] 也分别是两个指令)
gd   转到当前光标所指的局部变量的定义
*      转到当前光标所指的单词下一次出现的地方
#     转到当前光标所指的单词上一次出现的地方
2. taglist
taglist的功能是即时生成当前文件的函数列表和全局变量列表,便于索引。 能够列出源文档中的tag(function, class, variable, etc)并跳转.
注意:taglist依赖于ctags,所以要先装ctags,否则taglist装了也没法用!
(2)解压得到两个文档(假设在zip文件在/home/taogle文件夹下)
cd /home/taogle
$ unzip -d taglist taglist_42.zip
$ cd taglist
$ tree
.
|-- doc
| `-- taglist.txt 
`-- plugin
`-- taglist.vim   
(3)安装
cp doc/taglist.txt    /usr/share/vim/vim72/doc/                  --taglist 帮助文件 
cp plugin/taglist.vim   /usr/share/vim/vim72/plugin/        -- taglist 插件
(4)配置和使用
启动vim,可使用 “:helptags .”来配置好帮助文件,并能够用来查看;
重启vim,用“:TlistToggle”来打开和关闭taglist窗口。
在 /usr/share/vim/中的文件vimrc中添加关于taglist的常用配置命令如下:
==============================
let Tlist_Ctags_Cmd = '/usr/bin/ctags'   "设定Linux系统中ctags程序的位置
let Tlist_Show_One_File=1    "不同时显示多个文件的tag,只显示当前文件的
let Tlist_Exit_OnlyWindow=1  "如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Use_Right_Window = 1         "在右侧窗口中显示taglist窗口
"let Tlist_Use_SingleClick= 1    " 缺省情况下,在双击一个tag时,才会跳到该tag定义的位置
let Tlist_Auto_Open=1    "在启动VIM后,自动打开taglist窗口
let Tlist_Process_File_Always=1  "taglist始终解析文件中的tag,不管taglist窗口有没有打开
let Tlist_File_Fold_Auto_Close=1 "同时显示多个文件中的tag时,可使taglist只显示当前文件tag,其它文件的tag都被折叠起来
==============================
(5)使用
<1> 切换函数列表的开、关
     ==> 或者使用  “:TlistToggle” 在打开和关闭间切换
     ==> 可以用 “:TlistOpen” 打开taglist窗口,用“:TlistClose”关闭taglist窗口。
     ==> 在vimrc中使用如下面的映射,就可以使用 “,tl”  键就可以打开/关闭taglist窗口:
map tl :TlistToogle
<2> 在正常编辑区域和tags区域中切换 
      ctrl+w+w
<3> 定位指定内容 
在tags区域中,把光标移动到变量、函数名称上,然后敲回车(或者是双击某个tag),就会自动在正常编辑区域中定位到指定内容了。
在taglist窗口中,可以使用下面的快捷键 :
            跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样 
o                    在一个新打开的窗口中显示光标下tag 
   (空格)显示光标下的tag的原型定义,在vim 
u                    更新taglist窗口中的tag 
s                    更改排序方式,在按名字排序和按出现顺序排序间切换 
x                    taglist窗口放大和缩小,方便查看较长的tag 
+                    打开一个折叠,同zo 
-                    将tag折叠起来,同zc 
*                    打开所有的折叠,同zR 
=                   将所有tag折叠起来,同zM 
[[                   跳到前一个文件 
]]                   跳到后一个文件 
q                  关闭taglist窗口 
          显示帮助
Taglist插件还提供了很多Ex命令,甚至可以用这些命令创建一个taglist的会话,然后在下次进入VIM时加载此会话。
Taglist插件还可以与winmanager插件协同使用。
3.  omnicppcomplete 插件(让vim支持代码自动补全)
插件:omnicppcomplete
软件:ctags
ctags一般系统默认就有。
下载并安装插件 omnicppcomplete:
假设在家目录下存在.vim文件夹, 如:     /home/taogle/.vim,如果不存在,在家目录下建立.vim目录;然后使用以下的命令:
            unzip omnicppcomplete-0.41.zip   -d    /home/taogle/.vim (或者使用:$HOME/.vim)
从而在 /home/taogle/.vim下面解压出after、autoload、doc三个文件夹。至此 omnicppcomplete的安装已经完成。
千万要注意 :在unzip前面不能加sudo,否则会使得解压出的三个文件夹属性为不可写(no write),从而造成 omnicppcomplete的不可用,关于此,笔者有惨痛的教训见以下的帖子:
 
 
再运行vim,然后在vim的命令模式下输入 :helptags $HOME/.vim/doc ,这样可以添加omnicppcomplete的帮助文件到vim。
你可以继续输入:h omnicppcomplete来查看插件提供的文档,里边有安装和使用的所用方法。
在你的vim配置文件(~/.vimrc,没有可以新添加一个)加上以下几句:
set nocp
filetype plugin on
//可选项
set completeopt=longest,menu
set completeopt=menuone
使用方法:
omnicppcomplete主要依赖ctags生成的tags文件来判断补全的,所以首先应该生成一定的信息。也就是说应该先把类写好,然后再生成tags,以后出现对象的 ”.” 或 ”->”成员操作时它自动寻找成员函数。
在vim编辑文件时按Ctrl+F12,ctags会把这个文件所在目录以及子目录的所有文件信息收集生成一个名为tags的文件存在当前编辑文件所在目录。然后就可以实现代码自动补全咯。 在~/.vimrc中添加的 map…… 那句宏就实现这个功能。注意,如果要让新编写的文件可以使用则需先写入,命令为 :w
如果在补全时受不了[预览]窗口的打扰可以打开vim配置文件加入
set completeopt=menu
4.NERD_commenter.vim
注释插件,用来注释掉代码的工具,支持“//”、“/* */”两种代码注释方式。
               下载插件
安装很简单,将解压的doc文件放在vimfile/doc下,另一个vim文件放在vimfile/plugin下面……
也是程序员非常实用的一款插件,支持各种语言的补全,只要你能想到的,放心他绝对注释的了,而且还支持单行注释,批量注释,等各种命令映射,在这里,我把最常用的键映射在vimrc中配置了一下。
"对NERD_commenter的设置
let NERDShutUp=1
      "支持单行和多行的选择,//格式
map ,c 
这样的话,在光标所在行上,按下一次ctrl+h是注释,再按下一次是取消注释。
而其内建的指令,cm是多行注释,类似C++的/**/,,cu是取消注释。
 
其他的命令:
在Normal或者Visual 模式下:
    * ,ca,在可选的注释方式之间切换,比如C/C++ 的块注释/* */和行注释//
    * ,cc,注释当前行
    * ,c,切换注释/非注释状态
    * ,cs,以”性感”的方式注释
    * ,cA,在当前行尾添加注释符,并进入Insert模式
    * ,cu,取消注释
    * Normal模式下,几乎所有命令前面都可以指定行数
    * Visual模式下执行命令,会对选中的特定区块进行注释/反注释
5.DoxygenToolkit.vim 由注释生成文档,并且能够快速生成函数标准注释 
下载地址
安装:将下载的DoxygenToolkit.vim直接放在vimfile/plugin文件夹下面……
配置:
 
map fg : Dox 
map fn: DoxAuthor
map fl: DoxLic
let g:DoxygenToolkit_authorName="Taogle"
let g:DoxygenToolkit_licenseTag="My own license\"
let g:DoxygenToolkit_undocTag="DOXIGEN_SKIP_BLOCK"
let g:DoxygenToolkit_briefTag_pre = "@brief\t"
let g:DoxygenToolkit_paramTag_pre = "@param\t"
let g:DoxygenToolkit_returnTag = "@return\t"
let g:DoxygenToolkit_briefTag_funcName = "no"
let g:DoxygenToolkit_maxFunctionProtoLines = 30 
这样在vim的normal模式下,将光标放到文件的头部,按下fn就会对文件加上文档注释
将光标放到函数的定义的前面一行,按下fg就会对函数进行注释
按下fl,进行授权注释
6.a.vim .cpp和.h文件快速切换
 下载地址
把下载的a.vim放到plugin下,不需要配置。
直接可以:A,打开.cpp和.h对应的文件,:AV,打开.cpp和.h对应的文件,并且分屏显示
或者在vimrc中写下如下的映射,快捷键映射
map av : AV        (最常用)
还有其他的几个命令如下:
:A   switches to the header file corresponding to the current file being edited (or vise versa)
:AS   splits and switches
:AV   vertical splits and switches
:AT   new tab and switches
:AN   cycles through matches
:IH     switches to file under cursor
:IHS  splits and switches
:IHV  vertical splits and switches
:IHT  new tab and switches
:IHN  cycles through matches
因为这个插件都依赖于ctags管理的tags数据,所以新编辑的内容不会立即起效。所以应该时不时按下Ctrl-F12更新tags。
 
 
7. AddCppClass: 帮助你快速添加一个C++类
安装方法同4.NERD_commenter
 
可以在vimrc中设置快捷键
map cs : AddCppClass
从而在使用时,在normal模式下按下cs就可以提示添加一个类……
8.grep.vim,在工程中快速查找 
下载: http://www.vim.org/scripts/script.php?script_id=311
安装方法同6. a.vim
常用命令--> :Grep
 
但是这个插件挺难用的,只能慢慢摸索着用了
 
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Deutschester/archive/2010/07/20/5750989.aspx

vim下的ctags和taglist等的使用和配置的更多相关文章

  1. vim下使用ctags+taglist

    好几年前用过,但是后来就生疏了,好其次都没法鼓起勇气再捡起来...今天不得不用,那既然捡起来了,就好好的记录一下. 简介及安装 ctags是一个应用程序,可以用它来生产当前目录下所有c文件中变量和函数 ...

  2. vim Ctags 和taglist安装和使用

    Ctags是一个用于从程序源代码树产生索引文件(或tag文件),从而便于文本编辑器来实现快速定位的实用工具.在产生的tag文件中,每一个tag的入口指向了一个编程语言的对象.这个对象可以是变量定义.函 ...

  3. Linux 核心阅读工具vim+ctags+cscope+taglist

    今天.介绍vim+ctags+cscope+taglist的内核阅读配置. 当使用过之后,我相信大部分人都会舍弃之前的Eclipse(我就是活生生的一个样例).我们先来看看实现的界面是怎么样的: 我们 ...

  4. vim配置之——ctags与TagList的配置以及NERDTree && doxygentoolkit的安装

    参考(2)vim插件:显示树形目录插件NERDTree安装 和 使用 本文档主要对Linux下vim的ctags,TagList,NerdTree与doxgentoolkit进行相关的配置. 以下部分 ...

  5. vim(5)vim下wimrc的配置,解决中文乱码问题

    解决linux下vim乱码的情况:(修改vimrc的内容) 全局的情况下:即所有用户都能用这个配置 文件地址:/etc/vimrc 在文件中添加: ,ucs-bom,gb18030,gbk,gb231 ...

  6. Env:ctags和Taglist安装与配置

    注:文章参照http://blog.csdn.net/vaqeteart/article/details/4146618 想必用过Source Insight的人都记得这样一个功能: SI能够把当前文 ...

  7. vim下使用YouCompleteMe实现代码提示、补全以及跳转设置

    配置YouCompleteMe 1. 安装vundle vundle是一个管理vim插件的工具,使用vundle安装YouCompleteMe比较方便. 按照作者在https://github.com ...

  8. vim学习日志(5):vim下wimrc的配置,解决中文乱码问题

    解决linux下vim乱码的情况:(修改vimrc的内容) 全局的情况下:即所有用户都能用这个配置 文件地址:/etc/vimrc 在文件中添加: ,ucs-bom,gb18030,gbk,gb231 ...

  9. MAC OSX 下安装 CTAGS

    由于本子跟风换了骚货MBP,因而开发要迁移到MAC OSX下,mac os 下的ctags不一样,所以需要自己编译一个   Lion内置了ctags,但是不我所需要,因此得在网上去弄,最新的版本是 5 ...

随机推荐

  1. <p>在静态类junit.framework.Assert或者静态类org.junit.Assert中存在下面几个方法</p>

    在静态类junit.framework.Assert或者静态类org.junit.Assert中存在下面几个方法 1.assertEquals()方法,用来查看对象中存的值是否是期待的值,与字符串比較 ...

  2. 控制器View是怎样创建的?

    对于非常多程序猿来说控制器和View的关系肯定有点模糊,对于View的创建肯定有一种说不清道不明的感觉.view仅仅是控制器的一个属性.控制器中有很多对view处理的方法.也就是说得控制器管理view ...

  3. 在eclipse中使用Maven建web工程的两种方式

    Eclipse版本:Neon Release (4.6.0) Maven版本:3.3.9 第一种方式: 右键新建maven工程,勾选创建一个简单工程 填入信息,注意打包方式要改为war 点击完成,创建 ...

  4. iOS项目开发之实现无限轮播

    简介 分析 实现 代码下载 一.简介 在实际的开发当中,会经常有界面需要实现图片的无限轮播这样的需求.比如新闻app,或者其他app的广告位 实现的方式有很多种,最先想动的一定是scrollView, ...

  5. git个人使用总结(界面版)

    最近开始使用GIT来管理测试文档,从0到1开始使用git 1.首先,使用网页登录GIT后,创建项目 2.创建项目后,需要配置一下访问者权限 3.然后在网页版GIT复制地址,git clone到 本地 ...

  6. 使用php在服务器端生成图文验证码

    图文验证码的实现原理: 1):准备些许图片将其存储在数据库,每一张图片对应一个标识字段. 2):在服务器端使用数组的形式将图片与标识字段组合起来. 3):随机给客户端返回图片,并接受用户输入的字段. ...

  7. url中带有加号的处理方法

    最近项目中出现了一个问题,图片的路径正确,但是转成URL之后无法找到... 找了各种原因之后,最后注意到URL中的图片名称和本地路径名称有点不一样,如下图 1.URL图片 2.本地路径 上网查了一下发 ...

  8. Windows App开发之编辑文本与绘制图形

    编辑文本及键盘输入 相信大家都会使用TextBox,但假设要让文本在TextBox中换行该怎么做呢?将TextWrapping属性设置为Wrap,将AcceptsReturn属性设置为True就好咯. ...

  9. IntelliJ IDEA(2017)下载并破解

    idea激活,JetBrain旗下软件激活 我在修改这个博主的文章再添加了code码 http://blog.csdn.net/qq_24504453/article/details/77407329 ...

  10. YUV Player

    https://github.com/Yonsm/RawPlayer RawPlayer https://github.com/latelee/YUVPlayer YUVPlayer https:// ...