如何使用JSHintconfigurationSyntastic?

如何使用JSHint的Syntastic Vim插件来validationJavaScript代码?

环境:

  • Ubuntu 11.04
  • VIM – Vi改进7.3

我已经安装了VIM + JSLint的解决scheme? :

  • Vundle
  • 的node.js
  • 节点包pipe理器
  • jshint,全球
  • 通过Vundle安装的Syntax(在Vim中使用:BundleInstall命令确保安装了Syntastic。)

.vimrc中:

set nocompatible " be iMproved filetype off " required! set rtp+=~/.vim/bundle/vundle/ call vundle#rc() " let Vundle manage Vundle " required! Bundle 'gmarik/vundle' " My Bundles here: Bundle 'scrooloose/syntastic' filetype plugin indent on " required! let g:syntastic_enable_signs=1 let g:syntastic_auto_jump=1 let g:syntastic_stl_format = '[%E{Err: %fe #%e}%B{, }%W{Warn: %fw #%w}]' set statusline+=%#warningmsg# set statusline+=%{SyntasticStatuslineFlag()} set statusline+=%* 

寻找已安装的可执行文件:

 $ which gjslint $ which jslint $ which jsl $ which jshint /home/fernando/local/node/bin/jshint $ $ echo $PATH >/home/fernando/local/bin:/home/fernando/local/node/bin:/home/fernando/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games $ jshint test.js 

test.js:第3行,第1列,“blbla”未定义。
test.js:第4行,第1列,“x”未定义。
test.js:第4行,第5列,“nonono”未定义。
test.js:第6行,第1列,未定义“a”。
test.js:第7行,第1列,“b”未定义。
test.js:第8行,第5列,未定义“a”。
test.js:第8行,第10列,“b”未定义。
test.js:第8行,第7列,预期的“===”,而是看到“==”。

8错误

 $ vi test.js -- no error message shown :SyntasticEnable -- Vim exits and restarts, opening the same file, but still no message :w -- still no error message :Errors -- the location list opens but it is empty 

jshint和Syntastic都似乎已经安装,但可能会丢失一些东西。 会是什么?

这是一个更新的信息,有一个configuration文件扩展名与检查器相关联,
在你的.vimrc

 let g:syntastic_javascript_checkers = ['jshint'] 

也要获取有关在vim中运行此命令的信息

 :SyntasticInfo 

你会得到类似这样的输出:

 Syntastic info for filetype: javascript Available checkers: gjslint jshint Currently active checker(s): gjslint Press ENTER or type command to continue 

我只是有同样的问题。 原来,Syntastic在寻找jshint之前寻找jsl (JSLint)。 如果你们都安装了,你可能会被误导。 我把jsl移到了不在我PATH的地方,jshint被检测到很好。

资源:
https://github.com/scrooloose/syntastic/pull/47

我在这个问题上苦苦挣扎了好几天, SyntasticInfo即使在添加let g:syntastic_javascript_checkers['jshint']到我的.vimrc后, SyntasticInfo也不会将jshint识别为可用的检查器。 我使用的是Ubuntu 15.04,我按照这个教程在Ubuntu上安装了nvm,nodejs和jshint。 之后,我发现,如果我从我的.vimrc删除行filetype plugin indent on然后打开一个.js文件一切工作完美! 总结…

  1. 按照上面链接的教程
  2. ~/.nvm/<version_number>/bin.bashrcpath
  3. .vimrc删除filetype plugin indent on
  4. let g:syntastic_javascript_checkers['jshint'].vimrc
  5. :so %在vim里面
  6. 打开一个.js文件
  7. 添加filetype plugin indent on到您的.vimrc
  8. 一切都神奇地现在工作