Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.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 doctorjs(又名jsctags)不能与vim+;标语栏_Javascript_Vim_Jsctags - Fatal编程技术网

Javascript doctorjs(又名jsctags)不能与vim+;标语栏

Javascript doctorjs(又名jsctags)不能与vim+;标语栏,javascript,vim,jsctags,Javascript,Vim,Jsctags,我正在使用windows 7 64位 我已通过MSI安装程序安装了nodejs 0.6.11,安装路径为“C:\Program Files(x86)\nodejs”,安装程序自动将其添加到我的%path%,我通过以下步骤安装了doctorjs: 我复制了“C:\ProgramFiles(x86)\nodejs\doctorjs”下的doctorjs文件 我创建了jsctags.cmd,其中填充了从 我在我的vimrc中添加了以下行: 设g:tagbar\u type\u javascript={

我正在使用windows 7 64位

我已通过MSI安装程序安装了nodejs 0.6.11,安装路径为“C:\Program Files(x86)\nodejs”,安装程序自动将其添加到我的%path%,我通过以下步骤安装了doctorjs:

  • 我复制了“C:\ProgramFiles(x86)\nodejs\doctorjs”下的doctorjs文件
  • 我创建了jsctags.cmd,其中填充了从
  • 我在我的vimrc中添加了以下行:
  • 设g:tagbar\u type\u javascript={ \'ctagsbin':'C:\ProgramFiles(x86)\nodejs\jsctags.cmd' \}

    问题是,当我运行jsctags.cmd“{My js folder}”时,它生成的标签文件仅包含以下内容:

    !_标记文件格式2/扩展格式/ !_标记\文件\已排序0/0=未排序,1=已排序,2=文件夹/ !_TAG_程序作者Patrick Walton/pwalton@mozilla.com/ !_标记程序名称jsctags// !_标记\程序\ URL/GitHub存储库/ !_标记程序版本0.1//

    当我在vim中运行:tagbaropen时,它不会显示当前js文件的任何内容


    请引导我哪里做错了,谢谢

    因为您得到了一些输出,所以看起来您已经正确地实现了要点。但也许您对如何在命令行中使用它的期望与它实际工作的方式不同

    仅供参考:
    jsctags.cmd“{my js folder}”
    也会在我的机器上返回一个空标签文件。我认为命令界面还不是很成熟。。。所以看起来创建整个文件夹的标记文件是不可能的-但

    请尝试
    jsctags.cmd“{file}”
    。这将创建一个填充的
    标记
    文件

    还要注意,tagbar调用jsctags的方式如下:
    jsctags-f-{file}
    。这会将输出流式传输到标准输出。所以,若您正在调试,请尝试这种形式的命令

    作为另一个调试提示,修改批处理文件以输出调试信息。即: 添加如下行:

    echo "%~dp0"\"node.exe"  "D:\opt\node\doctorjs\bin\jsctags.js" %* > d:\debug.txt
    
    查看
    d:\debug.txt
    可以看到从标记栏调用命令时的样子


    顺便说一句:你使用的要点是我的。。。我想知道我是否没有测试这个批处理文件足够好的文件夹中有空间。在带空格和不带空格的两个文件夹中进行一些测试,以查看是否存在差异。如果您能更深入地了解它的作用/不作用,请告诉我,我可以进一步调查。

    您的问题可能与您为doctorjs克隆的narcissus的提交有关。进入doctorjs文件夹中的narcissus文件夹并运行

    git checkout 4ae5aff8b3
    

    这会将头部切换到文件的正确版本。

    谢谢!darcyparker,我实际上遵循了官方用法:“只需转到项目根目录并调用jsctags lib(将lib替换为存储JavaScript源文件的目录)。标记文件将放置在当前目录中。”--从中,官方用法似乎不起作用。而且,现在我陷入了另一个错误:TypeError:无法读取fixFun(E:\Root\nodejs\doctorjs\narcissus\lib\parser.js:241:18)的idNode(E:\Root\nodejs\doctorjs\lib\cfa2\jscfa.js:211:11)的fixFun(E:\Root\nodejs\doctorjs\lib\cfa.js:333:13)中未定义的属性“token”(E:\Root\nodejs\doctorjs\lib\cfa2\jscfa.js:296:5)位于E:\Root\nodejs\doctorjs\lib\cfa2\jscfa.js:311:18。。。