如果我打开扩展名为.html的文件,tagbar工作正常。
如果我打开扩展名为.js的文件,则tagbar不会列出任何内容。只需将文件扩展名重命名为.html即可使其正常工作。
如何让tagbar与.js文件一起使用?
答案 0 :(得分:0)
你试过taglist-plus吗?它使用jsctags,它在我安装此插件的短暂时间内工作正常。
答案 1 :(得分:0)
您正在处理的文件的文件类型(:set ft?
)是什么?
您是否安装了ctags
和/或jsctags
?
从您放置JavaScript文件的位置执行$ ctags -R .
和/或$ jsctags .
会创建tags
文件吗?
如果是,它包含什么?
如果您使用jsctags
,它是最新的吗?那么nodejs呢?
答案 2 :(得分:0)
在编辑 vim
代码时,在 *.ino 文件中使用 tagbar
、Arduino
和 Tasmota
源代码时遇到此问题。< /p>
我必须意识到两件事:
ctags-universal
,创建一个包含 ~/.ctags.d/local.ctags
的文件 --langmap=c++:+.ino
。arduino
中的 vim 文件类型 :set filetype?
(在 vim 中使用 .vimrc
查询文件类型):let g:tagbar_type_arduino = {
\ 'ctagstype' : 'c++',
\ 'kinds' : [
\ 'd:macros:1:0',
\ 'p:prototypes:1:0',
\ 'g:enums',
\ 'e:enumerators:0:0',
\ 't:typedefs:0:0',
\ 'n:namespaces',
\ 'c:classes',
\ 's:structs',
\ 'u:unions',
\ 'f:functions',
\ 'm:members:0:0',
\ 'v:variables:0:0'
\ ],
\ 'sro' : '::',
\ 'kind2scope' : {
\ 'g' : 'enum',
\ 'n' : 'namespace',
\ 'c' : 'class',
\ 's' : 'struct',
\ 'u' : 'union'
\ },
\ 'scope2kind' : {
\ 'enum' : 'g',
\ 'namespace' : 'n',
\ 'class' : 'c',
\ 'struct' : 's',
\ 'union' : 'u'
\ }
\ }
在 :help tagbar -> tagbar-extend
中查找操作方法和此定义。 Javascript 和其他定义在 ~/.vim/bundle/tagbar/autoload/tagbar/types/uctags.vim
可能还有其他方法可以做到这一点。它对我有用(tm)。
剩下要做的唯一一件事:重新打开 *.ino
源文件,点击 <F8>
以显示您的标签栏。
HTH