Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何让tagbar使用js文件_Javascript_Vim_Plugins_Jsctags - Fatal编程技术网

Javascript 如何让tagbar使用js文件

Javascript 如何让tagbar使用js文件,javascript,vim,plugins,jsctags,Javascript,Vim,Plugins,Jsctags,如果我打开一个扩展名为.html的文件,tagbar可以正常工作 如果我打开一个扩展名为.js的文件,那么tagbar不会列出任何内容。只需将文件扩展名重新设置为.html即可 如何让tagbar使用.js文件?您试过了吗?它使用jsctags,在我安装这个插件的短暂时间内,它工作得很好。 您正在处理的文件的文件类型(:set ft?)是什么 您是否安装了ctags和/或jsctags 是否从放置JavaScript文件的位置执行$ctags-R.和/或$jsctags.以创建标记文件 如果是,

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

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

如何让tagbar使用.js文件?

您试过了吗?它使用jsctags,在我安装这个插件的短暂时间内,它工作得很好。

  • 您正在处理的文件的文件类型(
    :set ft?
    )是什么

  • 您是否安装了
    ctags
    和/或
    jsctags

    是否从放置JavaScript文件的位置执行
    $ctags-R.
    和/或
    $jsctags.
    以创建
    标记
    文件

    如果是,它包含什么

  • 如果您使用的是
    jsctags
    ,它是当前版本吗?nodejs呢


在编辑
Tasmota
代码时,将
vim
tagbar
Arduino
源代码一起使用*.ino文件时遇到此问题

我必须意识到两件事:

  • 使ctags处理新的文件扩展名(请参阅):对于
    ctags universal
    ,创建一个文件
    ~/.ctags.d/local.ctags
    ,其中包含
    --langmap=c++:+.ino
  • 让tagbar知道如何在
    中处理vim文件类型
    arduino
    (使用
    查询vim中的文件类型:设置文件类型?
    )。vimrc
  • :help tagbar->tagbar extend
    中找到操作方法和此定义。Javascript和其他定义见
    ~/.vim/bundle/tagbar/autoload/tagbar/types/uctags.vim

    也许还有其他方法可以做到这一点。它适合我(tm)

    唯一要做的事情是:重新打开
    *.ino
    源文件,点击
    显示标记栏


    HTH

    我安装了taglist plus和tagbar。taglist plus的情况也一样。我必须将.js文件重命名为.html,否则它将无法识别任何标记。如果扩展名为.js,则文件类型为javascript,如果扩展名为.html,则文件类型为html。ctags和jsctags均已安装并工作。ctags-R。完成,没有任何错误消息,但jsctags似乎挂起。如果我在一个.js文件上运行jsctags,它会显示“错误:没有找到构造函数的名称”。但如果在同一个文件上运行它,并且文件扩展名重命名为html,则不会这样做。我最近安装了jsctags,所以它应该是最新的。你必须将你的问题一分为二,因为
    jsctags
    ctags
    是完全不同的软件,并且对你正在做的事情要精确。根据我的经验,jsctags对纯.js文件以外的任何文件都不起作用,无论是带有自定义扩展名的JavaScript文件还是嵌入js的HTML文件。不过,ctag在这两种场景中都有效。jsctags依赖于nodejs,nodejs是一个快速移动的垃圾。我以前也遇到过jsctags方面的问题,我通过安装另一个版本的nodejs(0.7.2-pre)解决了这些问题。现在jsctags可以工作了,但是它的输出有一点变化……它把TagBar搞糊涂了。使整个事情几乎毫无用处。我刚看到几个月前有人修复了,我会看看是否更好。同时,尝试升级nodej。
    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'
        \ }
    \ }