1.ctags
(1)到下载ctags源码ctags-5.6.tar.gz
(2)解压并安装
切换到root用户, 因为要往/usr/bin目录下拷贝文件
tar zxvf ctags-5.8.tar.gz
cd ctags-5.8
./configure && make
修改Makefile配置文件: prefix = "/usr/local" 为 "/usr"
我们要把ctags安装到/usr/bin下而不是/usr/local/bin下
安装:
make install
取消安装:
make uninstall
(3)使用
[/home/brimmer/src]$ ctags -R
"-R"表示递归创建,也就包括源代码根目录下的所有子目录下的源程序。"tags"文件中包括这些对象的列表:
l 用#define定义的宏
l 枚举型变量的值
l 函数的定义、原型和声明
l 名字空间(namespace)
l 类型定义(typedefs)
l 变量(包括定义和声明)
l 类(class)、结构(struct)、枚举类型(enum)和联合(union)
l 类、结构和联合中成员变量或函数
VIM用这个"tags"文件来定位上面这些做了标记的对象,下面介绍一下定位这些对象的方法:
1) 用命令行。在运行
vim的时候加上"-t"参数,例如:
[/home/brimmer/src]$
vim -t foo_bar
这个命令将打开定义"foo_bar"(变量或函数或其它)的文件,并把光标定位到这一行。
2) 在
vim编辑器内用":ta"命令,例如:
:ta foo_bar
3) 最方便的方法是把光标移到变量名或函数名上,然后按下"Ctrl-]"。用"Ctrl-o"退回原来的地方。
注意:运行
vim的时候,必须在"tags"文件所在的目录下运行。否则,运行
vim的时候还要用":set tags="命令设定"tags"文件的路径,这样
vim才能找到"tags"文件。
在函数中移动光标
[{ 转到上一个位于第一列的"{"
}] 转到下一个位于第一列的"{"
{ 转到上一个空行
} 转到下一个空行 ([ and ] 也分别是两个指令)
gd 转到当前光标所指的局部变量的定义
* 转到当前光标所指的单词下一次出现的地方
# 转到当前光标所指的单词上一次出现的地方
Vim 的创造者是一名计算机程序员,因此这就不奇怪
Vim 中有许多帮助编写程序的功能:
跳转到标识符被定义和使用的地方;在另一个窗口中预览有关的声明等等。
(ctags使用部分参考了 文章“ctags和
vim”,原文在
http://hi.baidu.com/original/blog/item/2cf8d53f00b7fcc27d1e71f0.html,
更多使用也请参考原文)
2.
taglist
能够列出源文件中的tag(function, class, variable, etc)并跳转.
注意:
taglist依赖于ctags,所以要先装ctags,否则
taglist装了也没法用!
(1)到
下载taglist_42.zip,即
(2)解压得到两个文件
# unzip -d
taglist taglist_42.zip
# cd
taglist
# tree
.
|-- doc
| `--
taglist.txt
`-- plugin
`--
taglist.
vim
(3)安装
cp doc/
taglist.txt /usr/share/
vim/vim61/doc/
cp plugin/
taglist.
vim /usr/share/
vim/vim61/plugin/
(4)配置和使用
cd /usr/share/
vim/vim61/doc/
启动
vim,用 “:helptags .”来配置好帮助文件
重启
vim,用“:TlistToggle”来打开和关闭
taglist窗口。
可以用“:help
taglist”来获得更多帮助信息
效果:
进入c源文件所在的目录
[root@mylinux debug]# ctags -R //产生tag文件
[root@mylinux debug]# vi hello.c //打开c源文件
在vim中输入:Tlist(启用taglist插件)再次输入会关闭taglist插件
左右窗口切换Ctrl+ww
Taglist帮助
在Taglist窗口按
F1:打开帮助
回车键:跳到光标所在的标记的定义处(如将光标移到main函数,按回车键)
o:新建一个窗口,跳到标记定义处
p:预览标记定义(仍然在taglist窗口)
空格:显示标记的原型(如函数原型)
u:更新标记列表(比如源文件新增了一个函数,并在保存后,可在taglist窗口按u)
s:选择排序字段(暂时我也不知道什么意思)
d:删除光标所在的taglist文件(如用vi打开了两个文件f1.c,f2.c可以删除f1.c的标记)
x:放大/缩小taglist窗口
+:展开(指标记)
-:折叠
*:全部展开
=:全部折叠
[[:将光标移到前一个文件的起点
]]:将光标移到后一个文件的起点
q:退出taglist窗口
F1:关闭帮助
阅读(781) | 评论(0) | 转发(0) |