如何使用JSHint的Syntastic Vim插件验证JavaScript代码?
环境:
我在VIM + JSLint?处的解决方案后安装了什么:
的.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,但可能缺少某些东西。它会是什么?
答案 0 :(得分:67)
这是一个更新的信息,有一个配置将文件扩展名与检查器相关联,
在.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
答案 1 :(得分:6)
我刚遇到同样的问题。事实证明,Syntastic在查找jshint之前会查找jsl
(JSLint)。如果你已经安装了,你可能会被误导。我把jsl
移到了不在我的路径中的地方,并且检测到jshint就好了。
答案 2 :(得分:0)
我几天来一直在努力解决这个问题,即使我将SyntasticInfo
添加到jshint
,let g:syntastic_javascript_checkers['jshint']
也无法将.vimrc
识别为可用的检查程序。我正在使用Ubuntu 15.04,我按照this教程在Ubuntu上安装nvm,nodejs和jshint。在我这样做之后,我发现如果我从filetype plugin indent on
删除了行.vimrc
,那么打开一个.js
文件就会完美无缺!总结一下......
~/.nvm/<version_number>/bin
添加到.bashrc
filetype plugin indent on
.vimrc
let g:syntastic_javascript_checkers['jshint']
添加到.vimrc
:so %
在vim里面.js
文件filetype plugin indent on
添加回.vimrc