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

doctorjs(aka jsctags) not work with vim+tagbar

本文关键字:不适用 适用于 vim+tagbar jsctags 又名 doctorjs      更新时间:2023-09-26

我使用的是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_作者Patrick Walton/pwalton@mozilla.com/_TAG_PROGRAM_NAME jsctags//_标签_程序_ URLhttp://github.com/pcwalton/jsctags/GitHub存储库/_TAG_PROGRAM_VERSION 0.1//

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

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

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

仅供参考: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可以看到从标签栏调用命令时的样子。

BTW:你使用的要点是我的。。。我想知道我是否没有用有空间的文件夹很好地测试这个批处理文件。在有空格和没有空格的两个文件夹中进行一些测试,看看是否有区别。如果你对它的作用/不作用有更多的了解,请告诉我,我可以进一步调查。

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

git checkout 4ae5aff8b3

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