如何让 ctags 在 vim 中工作
我是 vim 新手,想要让 ctags 集成工作,这样我就可以更轻松地浏览大型 java 项目。
我已经从 source forge 中下载了 zip 并提取了它,但是从这里我不确定如何让它与 vim 一起工作。
对于 vim 新手用户的任何帮助都会很棒!
I'm new to vim and wanted to get ctags integration working so I can more easily navigate a large java project.
I've pulled down the zip from source forge and extracted it but from here I'm not sure how to get it working with vim
Any help for a novice vim user would be great!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
由于没有人在这些答案中给出一项关键功能,因此我将提供一个稍微优越的答案。
将 ctags 与 vim 结合使用的最简单方法是
从源存储库的根目录调用:。这将在同一目录中生成一个
tags
文件。在你的
~/.vimrc
文件中,添加这个短块:"
表示注释。set autochdir
告诉 vim 如果找不到$PWD
中的tags
文件,它将递归地在父目录中查找tags
文件。 您的tags
文件的名称将始终与 ctags 生成的默认tags
文件相同。告诉 vim,只要运行
ctags, -R *
第一次在你的根源目录中,偶尔更新它(如果你从其他人那里获取新的更改),那么你将始终在 vim 中进行快速直观的 ctags 符号查找。As nobody has given one critical function in these answers, I'll provide one more slightly superior answer.
The easiest way to use ctags with vim is by calling:
from the root of your source repository. This will generate a
tags
file in that same directory.In your
~/.vimrc
file, add this short block:"
denotes a comment.set autochdir
tells vim that if it doesn't find atags
file in the$PWD
it will look in the directory parent for thetags
file, recursively.set tags=tags;
tells vim that the name of yourtags
file will always be the same as the defaulttags
file generated by ctags.So long as you run
ctags -R *
in your root source directory the first time and occasionally to update it (if you pull new changes from others) then you'll always have a fast and intuitive ctags symbol lookup in vim.使用 exuberant ctags,我在项目的基本目录中使用类似的内容(不包括“log”目录):
Using exuberant ctags, I use something like this in my project's base directory (excluding the "log" directory):
您必须以源文件作为参数运行
ctags
命令。这将创建一个包含所有信息的标签文件。然后,您可以使用 vim 打开文件,例如,在包含函数的行上按Ctrl-]
可以跳转到该函数的代码。如果 vi 与标记文件不在同一目录中启动,可以使用:set Tags=
进行设置You have to run the
ctags
command with the source files as arguments. This will create a tags file containing all information. Then you can open a file with vim, and e.g. pressCtrl-]
when on a line with a function to jump to the code of that function. If vi isn't started in the same directory as the tag file, you can set it with:set tags=<file>
这就是我正在做的:
ctags -n -f [OUTPUT] [SOURCE]
生成标签(注意:-n
适用于我,但可能不适用于您的使用所必需的)exec "set Tags=" 。 [OUTPUT]
位于.vimrc
内部,让 vim 意识到标签编辑:我正在使用
Exuberant Ctags 5.5.2
VIM 6.1
其他信息:
This is what I'm doing:
ctags -n -f [OUTPUT] [SOURCE]
to generate the tags (NOTE: the-n
applies to me but may not be necessary for your usage)exec "set tags=" . [OUTPUT]
inside of.vimrc
to let vim become of aware of the tagsEDIT: I'm using
Exuberant Ctags 5.5.2
VIM 6.1
Additional info:
看看这篇文章:vim-easytags。我没试过这个,但看起来很不错。手动创建和更新标签真的很烦人。希望这会有所帮助。 :)
look at this article: vim-easytags. i haven't tried this, but it looks quite good. manually creating and updating tags was really annoying. hope this will help. :)