javascript - ctags, jsctags/doctorjs, Tagbar 一步一步

标签 javascript vim ctags

我需要有关设置 ctags、jsctags 和标签栏的帮助,这样我才能拥有一个可行的 Javascript 编辑环境。我安装了所有东西,但不知道 ctags 和 jsctags 如何协同工作,所以我不知道如何正确配置。我在谷歌上做了很多搜索,但信息很破旧,缺乏一致性。我收到了类似于这篇文章的错误,ctags and tagbar configuration are out of sync .我在 OS X mountain lion 和 iterm2 上。

如有任何帮助,我们将不胜感激。一步一步的说明会很好。

谢谢。

最佳答案

首先,您必须了解 jsctags 和 ctags 可能永远不同步。即使您只有一个简单的功能,两个程序输出的信息也可能略有不同。因此,建议使用一个另一个,但不要同时使用。

其次,据我所知,TagBar 不需要配置为使用 jsctags 而不是 ctags。如果您使用的是 JavaScript,它会简单地默认为 jsctags(如果它可用)。如果你有一个有效的 jsctags,TagBar 不应该提示。

第三,对于它自己的标签相关功能( :tag:tselect<C-]> 等),Vim 只依赖于一个或多个物理 tags 文件的存在。这些文件是否由 ctags、jsctags 或 whatevertags 生成都无关紧要,只要它们生成正确即可。

现在我们到达了第四点,这才是真正的痛苦所在:Tagbar 和它的老表兄 TagList 实际上都没有使用物理 tags 文件。他们直接点击 ctags 或 jsctags,甚至没有尝试使用或更新任何现有的 tags 文件。因此,以及 TagBar 仅处理当前缓冲区这一事实,您自己的物理 tags 文件(以及因此 Vim 的标签相关功能)和 TagBar 几乎可以保证不同步。即使您使用相同的索引器。

所以……我建议你使用或者 ctags 或者 jsctags 并且忘记同步 TagBar 和 Vim 的标签相关的东西,因为这两个东西是完全分开的:

  • 使用 TagBar 了解/导航当前缓冲区。

  • 使用 Vim 的标签相关功能来移动您的项目。


随意的想法......

  • 要让 Vim 轻松找到您的 tags 文件,您应该将此行放在您的 ~/.vimrc 中:

    set tags=./tags,tags;/
    

    ./tags的意思是“在当前文件的目录中寻找一个tags的文件”,tags的意思是“在工作目录中寻找一个tags的文件”,;/的意思是“一直往上找,直到到达/”。

  • The TagBar wiki 谈到了 jsctags 中的错误,确保您不关心它。

  • 当您编写带有大量回调和自执行函数的疯狂“现代”JavaScript 时,jsctags 优于 ctags。如果您的 JavaScript 比较传统,ctags 可能就足够了。

关于javascript - ctags, jsctags/doctorjs, Tagbar 一步一步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15425800/

相关文章:

javascript - JSON对象如何匹配Javascript中的键值对

javascript - express.js 中间件中的 next() 函数是什么

javascript - 开发一个 Chrome 扩展来覆盖自签名证书的 SSL 证书异常

Vim 插入序列与递增数字

vim - 在 vim 中查找局部变量的引用

javascript - CSS 背景色有效性

VIM:选项、变量和两者之间的转换

Vim:缩进当前(空白)行并插入

windows-10 - Windows上的通用标签

vim - VIM:破解ctags或调整标签栏以获得更好的PHP支持