6

Syntastic with Pathogen をインストールしました。

Syntastic は Python ファイルでは機能しますが、JSHint を使用した JavaScript ファイルでは機能しません。JSHint は、コマンド ラインまたはhttps://github.com/Shutnik/jshint2.vimのような他の vim プラグインを介して動作します

→ which jshint  
/usr/local/share/npm/bin/jshint

→ jshint --version
jshint v2.1.10

→ echo $PATH
/usr/local/share/npm/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

:SyntasticInfo を実行すると、チェッカーが見つかりません。

Syntastic info for filetype: javascript
Available checkers:
Currently active checker(s):

私のvimrc

set nocompatible
filetype off
call pathogen#infect()
call pathogen#helptags()
filetype plugin indent on
syntax on

let g:syntastic_check_on_open=1
let g:syntastic_javascript_checkers = ['jshint']

Syntastic が JSHint を検出しない理由がわかれば、何を見逃したのかわかりません。ありがとう

4

1 に答える 1

21

簡単に言えば。Syntastic には jshint のパスが必要です。


Windows 8 でも同様の問題が発生しましたnodejs。v0.10.22 およびsyntastic>= 3.2.0 をインストールした後、Vim コマンド:SyntasticInfoを実行すると次のようになります。

Syntastic: active mode enabled
Syntastic info for filetype: vim
Available checker(s): 
Currently enabled checker(s):

jshint.com/docsにあるドキュメントは、これでモジュールをインストールするのに十分であることを示唆しています。

$ npm install jshint -g

フラグ -gのやや驚くべき意味を除けば、これは本当です。システムにグローバルに JSHint をインストールします。これは、ユーザーの %AppData% フォルダー内を意味します。

(abbreviated output from previous command)
C:\Users\jaroslav\AppData\Roaming\npm\jshint -> \
C:\Users\jaroslav\AppData\Roaming\npm\node_modules\jshint\bin\jshint
jshint@2.3.0 C:\Users\jaroslav\AppData\Roaming\npm\node_modules\jshint
├── console-browserify@0.1.6
├── underscore@1.4.4
├── shelljs@0.1.4
├── minimatch@0.2.12 (sigmund@1.0.0, lru-cache@2.5.0)
└── cli@0.4.5 (glob@3.2.7)

syntastic FAQの別のドキュメントには次のように書かれています。

Q. syntastic をインストールしましたが、エラーが報告されません...

A.最も可能性の高い理由は、必要な構文チェッカーがインストールされていないことです。例: python には、flake8、pyflakes、または pylint のいずれかがインストールされ、$PATH にある必要があります。サポートされている実行可能ファイルを確認するには、syntax_checkers//*.vim を参照してください。エイリアスは機能しないことに注意してください。実際の実行可能ファイルは $PATH で利用可能でなければなりません。シンボリックリンクは問題ありません。:SyntasticInfo を実行すると、使用可能なチェッカーの syntastic のアイデアを確認できます。

jshint解決策は ~/.vimrcにコマンドのパスを設定することです:

 let g:syntastic_jshint_exec='C:\Users\jaroslav\AppData\Roaming\npm\jshint.cmd'

:source $HOME/_vimrc
:SyntasticInfo
Syntastic: active mode enabled
Syntastic info for filetype: javascript
Available checker(s): jshint
Currently enabled checker(s): jshint

または、次のことができます。

> cmd.exe
> cd C:\Users\jaroslav\AppData\Roaming\npm
> setx PATH "%cd%:%PATH%"

let g:syntastic_jshint_exec='jshint.cmd'。Winders は長い %PATH% 変数を好まないため、%PATH% を使用した最後のソリューションは試しませんでした。

うまくいけば、これで時間を節約できます。

于 2013-11-24T10:30:05.243 に答える