web-dev-qa-db-ja.com

JSHintでSyntasticを構成する方法は?

JavaScriptコードを検証するためにJSHintでSyntastic Vimプラグインを使用する方法は?

環境:

  • Ubuntu 11.04
  • VIM-Vi IMproved 7.3

VIM + JSLint? のソリューションに従ってインストールしたもの:

  • バンドル
  • node.js
  • ノードパッケージマネージャー
  • jshint、グローバルに
  • Vundleを介してSyntasticをインストールしました(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の両方がインストールされているようですが、おそらく何かが欠落しています。それはどうなりますか?

44

詳細はこちらをご覧ください。ファイル拡張子をチェッカーに関連付ける設定があります。
あなたの.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
67
alfonsodev

これと同じ問題がありました。 Syntasticはjshintを探す前にjsl(JSLint)を探します。両方をインストールしている場合、誤解される可能性があります。 jslをPATH以外の場所に移動しましたが、jshintは問題なく検出されました。

ソース:
https://github.com/scrooloose/syntastic/pull/47

6
Ricky Mondello

私は数日間この問題に苦労し、let g:syntastic_javascript_checkers['jshint'].vimrcに追加した後でも、SyntasticInfojshintを利用可能なチェッカーとして認識しませんでした。 Ubuntu 15.04を使用しています。 this チュートリアルに従って、nvm、nodejs、jshintをUbuntuにインストールします。その後、filetype plugin indent onから.vimrcの行を削除して.jsファイルを開くと、すべてが完全に機能することを発見しました。要約する...

  1. 上記のリンクのチュートリアルに従ってください
  2. ~/.nvm/<version_number>/binのパスに.bashrcを追加します
  3. filetype plugin indent onから.vimrcを削除します
  4. let g:syntastic_javascript_checkers['jshint'].vimrcに追加します
  5. :so % vim内
  6. .jsファイルを開きます
  7. filetype plugin indent on.vimrcに追加し直します
  8. すべてが今魔法のように動作します
0
Jordan Camp