我已经安装了Syntastic with Pathogen。
Syntach适用于Python文件,但不适用于JSHint的JavaScript文件。 JSHint通过命令行或其他vim插件(如https://github.com/Shutnik/jshint2.vim
)工作→ which jshint
/usr/local/share/npm/bin/jshint
→ jshint --version
jshint v2.1.10
→ echo $PATH
/usr/local/share/npm/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
当我运行:SyntasticInfo时,它找不到任何检查器。
Syntastic info for filetype: javascript
Available checkers:
Currently active checker(s):
我的vimrc
set nocompatible
filetype off
call pathogen#infect()
call pathogen#helptags()
filetype plugin indent on
syntax on
let g:syntastic_check_on_open=1
let g:syntastic_javascript_checkers = ['jshint']
我不知道我错过了什么,如果你知道为什么Syntastic没有检测到JSHint。感谢
答案 0 :(得分:21)
我在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
这是真的,除了 flag -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的另一份文件是:
Q值。我安装了syntastic但它没有报告任何错误...
一个。 最可能的原因是它没有安装所需的语法检查程序。 例如:python需要安装flake8,pyflakes或pylint以及$ PATH。要查看支持哪些可执行文件,请查看syntax_checkers // * .vim。 请注意,别名不起作用;实际的可执行文件必须在$ PATH中可用。 符号链接没问题。您可以通过运行SyntasticInfo来查看Syntastic对可用检查器的想法。
解决方案相当于在〜/ .vimrc中设置jshint
命令的路径:
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%的最后一个解决方案,因为Winders不喜欢long%PATH%变量。
答案 1 :(得分:0)
不幸的是,由于这是我的第一篇文章,我无法对之前的回答发表评论,但首先感谢您的回答,我想补充一点。
使用此选项
let g:syntastic_jshint_exec='C:\Users\jaroslav\AppData\Roaming\npm\jshint.cmd'
我试图为python激活pylint checker,但我必须像这样写
let g:syntastic_python_pylint_exec='C:\WinPython-64bit-3.3.5.0\python-3.3.5.amd64\Scripts\pylint'
所以我必须在检查器之前添加单词python