44

Syntastic VimプラグインをJSHintで使用してJavaScriptコードを検証するにはどうすればよいですか?

環境:

  • Ubuntu 11.04
  • VIM-Vi IMproved 7.3

VIM + JSLintのソリューションに従って、何をインストールしましたか?:

  • ヴァンドル
  • node.js
  • ノードパッケージマネージャー
  • jshint、グローバル
  • SyntasticはVundleを介してインストールされます(Syntasticがインストールされていることを確認するためにVim内で:BundleInstallコマンドを使用しました)。

.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の両方がインストールされているようですが、何かが不足している可能性があります。それはどうなりますか?

4

3 に答える 3

68

これがより更新された情報です。ファイル拡張子をチェッカーに関連付けるための構成があり
ます。.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
于 2013-07-04T11:43:56.063 に答える
6

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

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

于 2011-12-07T06:27:25.597 に答える
0

私はこの問題に何日も苦労し、に追加した後でも利用可能なチェッカーとしてSyntasticInfo認識されませんでした。私はUbuntu15.04を使用しており、このチュートリアルに従って、Ubuntuにnv​​m、nodejs、およびjshintをインストールしました。それを行った後、ファイルを開いてからその行を削除すると、すべてが完全に機能することがわかりました。要約する...jshintlet g:syntastic_javascript_checkers['jshint'].vimrcfiletype 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. すべてが魔法のように機能するようになりました
于 2016-02-03T04:49:32.523 に答える