我刚刚熟悉了Vim的CTags功能 - 而且非常方便。
我遇到的一个问题是为每个项目重新生成常用标签。
例如 - 我在rails中做了相当多的工作,并希望为整个rails框架生成ctags
alias rctags="ctags -R `bundle show rails`/../*"
问题是我必须为我启动的每个rails项目执行此操作。
那么,只有当打开的文件满足特定条件时,在任何vim会话中自动访问一组标记的标准方法是什么?理想情况下。 (例如,为.rb文件预加载了rails ctags,但没有预先加载.py文件)
赞赏任何想法
答案 0 :(得分:2)
请参阅:help 'tags'
。
您可以使用,例如:
set tags+=~/.rails-tags
这将导致~/.rails-tags
搜索标签。
(另外,关于标签的话题:用tags
后缀;/
变量可能很有用。这意味着“在工作目录的每个父节点中搜索标签文件(例如,所有将搜索文件/foo/bar/tags
,/foo/tags
和/tags
。例如,我使用:set tags=tags;/
)。
答案 1 :(得分:2)
为什么不使用专为管理Vim中的ctags而设计的插件Indexer?
您可以在~/.indexer_files
中定义您的项目,如下所示:
[my_rails_project]
/path/to/the/needed/directory
甚至
[my_rails_project]
option:ctags_params = "--languages=Ruby"
/path/to/the/needed/directory
然后每当您从目录*.rb
(当然还有子目录)打开Ruby文件(即*.ruby
或/path/to/the/needed/directory
)时,您的标记将在后台进程中自动生成,当你从这个项目中保存任何文件时,标签也会自动更新(再次,在后台)。
所以,你不应该关心你的标签生成,它只是有效。
有关详情,请参阅文章:Vim: convenient code navigation for your projects,该文章详细解释了Indexer + Vimprj的用法。