我刚刚开始使用ctags并非常欣赏该工具,但我管理我的标签文件的方式在我看来有点麻烦而且非常不灵活.
我目前如何管理我的标签文件:
我有一个单片标记文件存储在我的主文件夹中~/.vim/tags
当我更新我的代码或更改项目时,我运行一个删除旧标记文件的脚本并重新生成整体标记文件(您必须更改ctags在更改项目时执行的位置)
有一个单片标记文件适合我,因为它让我跳转到我正在处理的当前项目的所有相关符号.
单个整体标记文件是否不适用于大型/庞大的代码库?为什么巨大的标记文件无法在大型/庞大的代码库上运行?
管理标记文件(或标记文件复数)的其他方法有哪些?
为什么管理标记文件的新方法会更好?(可能更好的解决方案有时会更复杂.因此,如果您的解决方案更复杂,我会问您更复杂的方法来管理您的标记文件有什么好处.)
ps我发现了一个stackoverflow问题,谈论ctags称为" vimctags-tips-and-tricks ",但这个问题没有讨论如何管理你的标签文件.
我最近喜欢的一种方法是使用VCS(版本控制系统)钩子来生成ctags文件.我在本地使用git,即使对于小型项目等也是如此,因此每次提交时ctags都会更新(显然,这可能与所有其他VCS一样).
我个人喜欢将ctags文件放在每个项目的目录中,但这种方法应该在全局范围内工作.
编辑:VCS挂钩是在执行某些操作时自动运行的脚本或程序,例如checkout,commit,revert等.
为了进一步阅读,我建议以下链接:
Subversion:SVN书籍的实现存储库钩子和存储库钩子部分.
Git:Git社区图书的Git Hooks部分.
Mercurial:处理存储库事件与钩子部分来自在线书籍Mercurial:The Definitive Guide.
我已经碰到了所有VCS中的钩子,我相信你能找到你选择使用的文件的文档.
我把我的tags
文件放在项目目录中.这使得每个项目的标签分开.
对于大型代码库,我只是降低了更新它的频率.我通常只会在尝试跳转到某个关键字时更新它,并且由于某种原因它不存在.毕竟,目的是快速访问代码的其他部分,如果它通过任何方式到达那里,那么即使标记文件已过期,它仍然有效.