gvim怎么才能设置tag呢?

Vim、Emacs配置和使用
回复
tartss
帖子: 57
注册时间: 2006-05-03 17:29
送出感谢: 0
接收感谢: 0

gvim怎么才能设置tag呢?

#1

帖子 tartss » 2006-09-12 17:20

我看到一文章说输入:tag 行就可以跳转到该行,可是我的却提示说cstag找不到tag,到底tag功能怎么用啊?不过我真的觉得vim很顺手,虽然现在我是通过标签功能进行定位的。还有一个问题是tab补全的问题,比如我有三个标签狠近视,define defined demon ,我输入d+TAB键会出来三个选项,默认是demon,我如何是它选择define呢?谢谢。

BTW:有没有办法控制行的长度?可不能输入就一行阿,比如像word那样自动换行。
poet
帖子: 2841
注册时间: 2006-09-11 22:47
送出感谢: 0
接收感谢: 4 次

#2

帖子 poet » 2006-09-12 22:29

tag有两种,一个用 ctag 找,一个用 cscope找
不论哪种tag,首先要为你的代码建立数据库。也就是说,为ctags得建立tags文件,cscope得建议cscope.out数据库。然后就可以跳转和补全了。

关于自动换行,看看 这几个。
:h 'wrap'
:h 'textwidth'
tartss
帖子: 57
注册时间: 2006-05-03 17:29
送出感谢: 0
接收感谢: 0

#3

帖子 tartss » 2006-09-13 10:25

poet 写了:tag有两种,一个用 ctag 找,一个用 cscope找
不论哪种tag,首先要为你的代码建立数据库。也就是说,为ctags得建立tags文件,cscope得建议cscope.out数据库。然后就可以跳转和补全了。

关于自动换行,看看 这几个。
:h 'wrap'
:h 'textwidth'
那么怎么在source 文件中建立tags文件呢?比如我想给函数名建立tag,怎么做呢?
头像
leal
帖子: 1119
注册时间: 2005-08-29 14:49
来自: 杭州
送出感谢: 0
接收感谢: 3 次
联系:

#4

帖子 leal » 2006-09-21 12:50

:cd %:p:h #切换至当前文件所在的目录
:!ctags -R . 或 *.[hc] #生成当前源代码tags文件 (ctags)

cscope 请自行查看 cscope 或 vim 的帮助

good luck
用心×恒 | 豆瓣 | 门户 | Blog
poet
帖子: 2841
注册时间: 2006-09-11 22:47
送出感谢: 0
接收感谢: 4 次

#5

帖子 poet » 2006-09-26 19:28

leal 写了::cd %:p:h #切换至当前文件所在的目录
:!ctags -R . 或 *.[hc] #生成当前源代码tags文件 (ctags)

cscope 请自行查看 cscope 或 vim 的帮助

good luck
当文件不多的时候 ctags -R 这样用是没有问题的。

如果文件比较多,比如说几千个甚至超过一万,这样通常都会有问题,一般是没有找全,而且ctags没有任何错误提示。(直接结果就是缺少很多tag没有定义)

所以实际上文件多的时候得每次列少量的文件,然后追加到tags数据库。这样就得用 Makefile 来帮助建立才行。比方说我手头一个项目中有48个目录,每个建立一个rule,然后用 ctags -a 追加,还用 find 去找文件。管道传输。

由于ctags管理多个tags文件的机制并不是非常令人满意。所以有的时候cscope是更好的选择。

当然,对于源文件少于一千个的小型项目,ctags基本还是足够的。
回复

回到 “Vim和Emacs”