1

如果我打开一个扩展名为 .html 的文件,标签栏可以正常工作。

如果我打开一个扩展名为 .js 的文件,那么标签栏不会列出任何内容。只需将文件扩展名重命名为 .html 即可。

如何让标签栏与 .js 文件一起使用?

4

3 回答 3

0

你试过taglist-plus吗?它使用 jsctags 并且在我安装这个插件的短暂时间内工作得很好。

于 2012-03-23T20:28:33.337 回答
0
  • :set ft?您正在处理的文件的文件类型 ( ) 是什么?

  • 你有ctags和/或jsctags安装和工作?

    执行$ ctags -R .和/或$ jsctags .从您放置 JavaScript 文件的位置创建tags文件?

    如果是,它包含什么?

  • 如果您正在使用jsctags,它是当前的吗?那nodejs呢?

于 2012-03-23T22:25:14.730 回答
0

vim在编辑代码时使用,tagbarArduino* .ino文件中的源代码时遇到此问题Tasmota

我必须意识到两件事:

  1. 让 ctags 处理新的文件扩展名(参见https://stackoverflow.com/a/67495267/10050838):对于ctags-universal,创建一个包含~/.ctags.d/local.ctags其中的文件--langmap=c++:+.ino
  2. 让 tagbar 知道如何处理 vim 文件类型arduino(在 vim 中使用 查询文件类型:set filetype?.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

于 2021-05-11T23:11:11.677 回答