简而言之,Syntastic需要jshint的路径。
我在Windows 8上遇到了类似的问题。安装了nodejs
v0.10.22和syntastic
>= 3.2.0之后,Vim命令:SyntasticInfo
会给我以下信息:
Syntastic: active mode enabled
Syntastic info for filetype: vim
Available checker(s):
Currently enabled checker(s):
在jshint.com/docs上的文档建议这样安装该模块已足够。
$ npm install jshint -g
这是正确的,除了一个有点令人惊讶的含义,-g标志会在系统上全局安装JSHint。它指的是在用户的%AppData%文件夹中:
(abbreviated output from previous command)
C:\Users\jaroslav\AppData\Roaming\npm\jshint -> \
C:\Users\jaroslav\AppData\Roaming\npm\node_modules\jshint\bin\jshint
jshint@2.3.0 C:\Users\jaroslav\AppData\Roaming\npm\node_modules\jshint
├── console-browserify@0.1.6
├── underscore@1.4.4
├── shelljs@0.1.4
├── minimatch@0.2.12 (sigmund@1.0.0, lru-cache@2.5.0)
└── cli@0.4.5 (glob@3.2.7)
来自Syntastic FAQ的另一份文档如下:
问:我安装了Syntastic,但它没有报告任何错误......
答:最可能的原因是它需要的语法检查器都没有安装。例如:Python
需要安装flake8、pyflakes或pylint
其中之一,并将其添加到$PATH中。要查看支持哪些可执行文件,请查看syntax_checkers//*.vim
文件。 请注意,别名无效,必须在$PATH中提供实际可执行文件。符号链接可以使用。运行 :SyntasticInfo 可以查看 Syntastic 的可用检查器。
解决方案是将jshint
命令的路径设置为~/.vimrc
中的路径:
let g:syntastic_jshint_exec='C:\Users\jaroslav\AppData\Roaming\npm\jshint.cmd'
:source $HOME/_vimrc
:SyntasticInfo
Syntastic: active mode enabled
Syntastic info for filetype: javascript
Available checker(s): jshint
Currently enabled checker(s): jshint
或者,可以这样做:
> cmd.exe
> cd C:\Users\jaroslav\AppData\Roaming\npm
> setx PATH "%cd%:%PATH%"
并且 let g:syntastic_jshint_exec='jshint.cmd'
。我没有尝试使用 %PATH% 的最后一个解决方案,因为 Windows 不喜欢过长的 %PATH% 变量。
希望这能为您节省一些时间。