【问题标题】:doctorjs(aka jsctags) not work with vim+tagbarDoctorjs(又名 jsctags)不适用于 vim+tagbar
【发布时间】:2012-12-04 05:56:58
【问题描述】:

我正在使用 Windows 7 64 位...

我已经通过MSI安装程序安装了nodejs 0.6.11,安装路径是“C:\Program Files (x86)\nodejs”,它是由安装程序自动添加到我的%PATH%中的,我通过步骤安装了doctorjs下面:

  1. 我复制了“C:\Program Files (x86)\nodejs\doctorjs”下的doctorjs文件
  2. 我创建了 jsctags.cmd,其中填充了从 https://gist.github.com/1438882 复制的内容
  3. 我在 _vimrc 中添加了以下几行:

让 g:tagbar_type_javascript = { \ 'ctagsbin' : 'C:\Program Files (x86)\nodejs\jsctags.cmd' \ }

问题是,当我运行 jsctags.cmd "{My js folder}" 时,它生成的标签文件只有以下内容:

!_TAG_FILE_FORMAT 2 /扩展格式/ !_TAG_FILE_SORTED 0 /0=未排序,1=已排序,2=折叠/ !_TAG_PROGRAM_AUTHOR 帕特里克·沃尔顿 /pwalton@mozilla.com/ !_TAG_PROGRAM_NAME jsctags // !_TAG_PROGRAM_URL http://github.com/pcwalton/jsctags /GitHub 存储库/ !_TAG_PROGRAM_VERSION 0.1 //

当我在 vim 中运行 :tagbaropen 时,它没有显示当前 js 文件..

请指教我哪里做错了,谢谢!

【问题讨论】:

    标签: javascript vim jsctags


    【解决方案1】:

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

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

    试试jsctags.cmd "{file}"。这应该会创建一个填充的 tag 文件。

    还要注意,tagbar 像这样调用 jsctags:jsctags -f - {file}。这会将输出流式传输到标准输出。因此,如果您正在调试,请尝试这种形式的命令。

    作为另一个调试技巧,修改您的批处理文件以输出调试信息。 IE: 像这样添加行:

    echo "%~dp0"\"node.exe"  "D:\opt\node\doctorjs\bin\jsctags.js" %* > d:\debug.txt
    

    查看d:\debug.txt 将让您看到从标签栏调用该命令时的样子。

    顺便说一句:你使用的要点是我的......我想知道我是否没有很好地测试这个批处理文件,其中包含空格的文件夹。在有空格和没有空格的两个文件夹中进行一些测试,看看是否有区别。如果您更深入地了解它在哪里起作用/不起作用,请告诉我,我可以进一步调查。

    【讨论】:

    • 谢谢! darcyparker,我其实是按照官方的用法:“只需进入你的项目根目录,调用jsctags lib(将lib替换为你的JavaScript源文件所在的目录)。tags文件会放在当前目录下。” -- 来自github.com/mozilla/doctorjs,貌似官方用的不行。
    • 而且,现在我正在努力解决另一个错误:TypeError: Cannot read property 'token' of undefined at new Node (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\cfa2\jscfa.js:333:13 ) 在 fixExp (E:\Root\nodejs\doctorjs\lib\cfa2\jscfa.js:296:5) 在 E:\Root\nodejs\doctorjs\lib\cfa2\jscfa.js:311:18 ...
    【解决方案2】:

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

    git checkout 4ae5aff8b3
    

    这应该将头切换到文件的正确版本。

    【讨论】:

      猜你喜欢
      • 2011-08-15
      • 1970-01-01
      • 1970-01-01
      • 2018-03-24
      • 1970-01-01
      • 1970-01-01
      • 2019-02-22
      • 2012-11-25
      • 2018-01-03
      相关资源
      最近更新 更多