1.接下来就是Ctags的安装,
软件包可以在http://ctags.sourceforge.net/下载。
接下来理所当然就是解压缩,以及安装
tar -zxf ctags-5.8.tar.gz
cd ctags-5.8
make
sudo make install //这句是要root权限的
『基本功能使用方法』
常用命令列表:
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
命令解释:
“$ ctags –R *”:“-R”表示递归创建,也就包括源代码根目录(当前目录)下的所有子目录。“*”表示所有文件。这条命令会在当前目录下产生一个“tags”文件,当用户在当前目录中运行vi时,会自动载入此tags文件。
Tags文件中包括这些对象的列表:
- 用#define定义的宏
- 枚举型变量的值
- 函数的定义、原型和声明
- 名字空间(namespace)
- 类型定义(typedefs)
- 变量(包括定义和声明)
- 类(class)、结构(struct)、枚举类型(enum)和联合(union)
- 类、结构和联合中成员变量或函数
VIM用这个“tags”文件来定位上面这些做了标记的对象。
剩下的命令就是定位这些对象的方法:
“$ vi –t tag” :在运行vim的时候加上“-t”参数,例如:
[/usr/src]$ vim -t main
这个命令将打开定义“main”(变量或函数或其它)的文件,并把光标定位到这一行。
如果这个变量或函数有多处定义,在VI命令行模式
“:ts”命令就能列出一个列表供用户选择。
“:tp”为上一个tag标记文件,
“:tn”为下一个tag标记文件。当然,若当前tags文件中用户所查找的变量或函数名只有一个,“:tp,:tn”命令不可用。
最方便的方法是把光标移到变量名或函数名上,然后按下“Ctrl+]”,这样就能直接跳到这个变量或函数定义的源文件中,并把光标定位到这一行。用“Ctrl+t”可以退回原来的地方。即使用户使用了N次“Ctrl+]”查找了N个变量,按N次“Ctrl+t”也能回到最初打开的文件,它会按原路返回 。
更多功能通过命令man ctags或在Vim命令行下运行help ctags查询。
注意:运行vim的时候,必须在“tags”文件所在的目录下运行。否则,运行vim的时候还要用“:settags=”命令设定“tags”文件的路径,这样vim才能找到“tags”文件。
在完成编码时,可以手工删掉tags文件(帚把不到,灰尘不会自己跑掉^_^)。
『阅读说明』
1)Vim存在多个配置文件vimrc,比如/etc/vimrc,此文件影响整个系统的Vim。还有~/.vimrc,此文件只影响本用户的Vim。而且~/.vimrc文件中的配置会覆盖/etc/vimrc中的配置。这里我们只修改~/.vimrc文件。
2)Vim的插件(plugin)安装在Vim的runtimepath目录下,你可以在Vim命令行下运行"set rtp“命令查看。这里我们选择安装在~/.vim目录,没有就创建一个。
3)当本文说”在Vim命令行下运行cmdxx命令“时,意思是指在Vim的命令行模式下运行cmdxx命令,即在Vim的正常模式下通过输入冒号":"进入命令行模式,然后紧接着输入命令cmdxx。在后文描述中都会省略冒号":"输入。
4)如果没有说明“在Vim命令行下运行某命令”,则是在shell中执行该命令。
5)如果命令中间被空白符间隔或有与正文容易混淆的字符,我会用双引号将命令与正文区分。所以读者在实际操作时,不要输入命令最前面和最后面引号。
6)本文关于组合快捷键的描述,形如a-b形式的快捷键表示同时按下a键和b键,而形如"a-b c"形式的快捷键,则表示先同时按下a键和b键,然后放开ab键,再按下c键。
7) 本人使用的系统是Ubunt 11.10 ,Vim版本是Vi IMproved 7.3
2.安装Taglist
在http://www.vim.org/scripts/script.php?script_id=273上下载taglist_46.zip
直接将解压好的文件复制到/usr/share/vim/vim74/doc和plugin文件夹中
unzip taglist_45.zip
此时会解压出来两个目录--doc/,plugin/
将这两个文件中的内容分别复制到/usr/share/vim/vim73目录下的doc/和plugin/
cp doc/* /usr/share/vim/vim73/doc/
cp plugin/* /usr/share/vim/vim73/plugin/
没那么简单,还要配置vimrc文件呢
在vimrc中加入下面两个设置语句:
let Tlist_Use_Right_Window=1 “列表放在屏幕的右侧 依据个人习惯
let Tlist_File_Fold_Auto_Close=1 “让当前不被编辑的文件的方法列表自动折叠起来, 这样可以节约一些屏幕空间
进到刚才已经tag好的目录,
vim
:tag <你所要查看的函数,或者是结构体,等等> 这样就能自动跳转到那个文件(快速定位)
3.安装winmanager.zip
地址:http://www.vim.org/scripts/download_script.php?src_id=754
安装过程和Taglist 是一模一样的!---解压,复制,路径也是一样的哦……
一切都OK之后,当然还有一步---配置vimrc,不要看到配置的就畏缩哦,很简单的啦:
let g:winManagerWindowLayout=’FileExplorer|TagList’
这样就好了,就把winManager和TagList两个都打开了,多方便哦……
好了,一切OVER,接下来就可以进入源代码目录咯:
vim
:WMToggle
这样就能得到我们最终的界面了
4.安装NEROTree
to show the file list
http://www.vim.org/scripts/script.php?script_id=1658
5.安装omnicppcomplete
从http://www.vim.org/scripts/script.php?script_id=1520
- OmniCpp_GlobalScopeSearch : 全局查找控制。0:禁止;1:允许(缺省)
- OmniCpp_NamespaceSearch : 命名空间查找控制。
- 0 : 禁止查找命名空间
- 1 : 查找当前文件缓冲区内的命名空间(缺省)
- 2 : 查找当前文件缓冲区和包含文件中的命名空间
- OmniCpp_DisplayMode : 类成员显示控制(是否显示全部公有(public)私有(private)保护(protected)成员)。
- 0 : 自动
- 1 : 显示所有成员
- OmniCpp_ShowScopeInAbbr : 选项用来控制匹配项所在域的显示位置。缺省情况下,omni显示的补全提示菜单中总是将匹配项所在域信息显示在缩略信息最后一列。
- 0 : 信息缩略中不显示匹配项所在域(缺省)
- 1 : 显示匹配项所在域,并移除缩略信息中最后一列
- OmniCpp_ShowPrototypeInAbbr : 是否是补全提示缩略信息中显示函数原型。
- 0 : 不显示(缺省)
- 1 : 显示原型
- OmniCpp_ShowAccess : 是否显示访问控制信息('+', '-', '#')。0/1, 缺省为1(显示)
- OmniCpp_DefaultNamespaces : 默认命名空间列表,项目间使用','隔开。
如:let OmniCpp_DefaultNamespaces = ["std', "MyNamespace"] - OmniCpp_MayCompleteDot : 在'.'号后是否自动运行omnicppcomplete给出提示信息。0/1, 缺省为1
- OmniCpp_MayCompleteArray : 在"->"后是否自动运行omnicppcomplete给出提示信息。0/1, 缺省为1
- OmniCpp_MayCompleteScope : 在域标识符"::"后是否自动运行omnicppcomplete给出提示信息。0/1, 缺省为0
- OmniCpp_SelectFirstItem : 是否自动选择第一个匹配项。仅当"completeopt"不为"longest"时有效。
- 0 : 不选择第一项(缺省)
- 1 : 选择第一项并插入到光标位置
- 2 : 选择第一项但不插入光标位置
- OmniCpp_LocalSearchDecl : 使用Vim标准查找函数/本地(local)查找函数。Vim内部用来在函数中查找变量定义的函数需要函数括号位于文本的第一列,而本地查找函数并不需要。