JavaScriptコードを検証するためにJSHintでSyntastic Vimプラグインを使用する方法は?
環境:
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の両方がインストールされているようですが、おそらく何かが欠落しています。それはどうなりますか?
詳細はこちらをご覧ください。ファイル拡張子をチェッカーに関連付ける設定があります。
あなたの.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は問題なく検出されました。
私は数日間この問題に苦労し、let g:syntastic_javascript_checkers['jshint']
を.vimrc
に追加した後でも、SyntasticInfo
はjshint
を利用可能なチェッカーとして認識しませんでした。 Ubuntu 15.04を使用しています。 this チュートリアルに従って、nvm、nodejs、jshintをUbuntuにインストールします。その後、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
に追加し直します