我需要有关设置ctags,jsctags和tagbar的帮助,以便可以使用可行的Javascript编辑环境。我已经安装了所有东西,但不知道ctags和jsctags如何一起工作,所以我不知道如何正确配置。我在Google周围做过很多事情,但是信息非常困惑并且缺乏一致性。我收到类似于此帖子的错误ctags and tagbar configuration are out of sync。我在OS X美洲狮和iterm2上。

任何帮助将不胜感激。一步一步的说明将是极好的。

谢谢。

最佳答案

首先,您必须了解jsctags和ctags可能永远不会同步。即使您只有一个简单的功能,两个程序可能也会输出稍有不同的信息。因此,建议使用其中一个而不是两者。

其次,AFAIK,TagBar不需要配置为使用jsctags而不是ctags。如果您使用的是JavaScript,那么它将在可用时简单地默认为jsctags。如果您有可用的jsctag,TagBar不应提示。

第三,对于其自身与标签相关的功能(:tag:tselect<C-]>等),Vim仅依赖于一个或多个物理tags文件的存在。那些文件是由ctags,jsctags或whattags生成的,只要它们是正确生成的,都不在乎。

现在我们到达了第四点,这实际上是痛苦所在: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/

    10-09 02:55