doctorjs(又名jsctags)不适用于vim + tagbar

时间:2012-03-01 14:17:13

标签: javascript vim jsctags

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

我已经安装了msj安装程序的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. 复制的内容
  4. 我在_vimrc中添加了以下行:
  5. 让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 Patrick Walton /pwalton@mozilla.com/ !_TAG_PROGRAM_NAME jsctags // !_TAG_PROGRAM_URL http://github.com/pcwalton/jsctags / GitHub存储库/ !_TAG_PROGRAM_VERSION 0.1 //

    当我在vim中运行:tagbaropen时,它没有为当前的js文件显示任何内容..

    请指导我做错的地方,谢谢!

2 个答案:

答案 0 :(得分:2)

由于您获得了一些输出,看起来您已正确实施了要点。但也许你对如何在命令行使用它的期望与它真正起作用的方式不同?

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

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

另请注意,tagbar会调用jsctags,如下所示:jsctags -f - {file}。这会将输出流式传输到stdout。因此,如果您正在调试,请尝试使用此命令形式。

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

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

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

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

答案 1 :(得分:2)

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

git checkout 4ae5aff8b3

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