VIM + JSLint?


120

私はvimで日々を過ごし、現在多くのJavaScriptを作成しています。JSLintなどをvimに統合して、コーディングを改善する方法を模索しています。誰かがこのようなことをどうにかしてできましたか?

編集:

試してみました:VimからのJavascript構文チェック残念ながら、出力は非常に粗雑です。

回答:


34

JSLint Webサービス+ VIM統合からの指示に従うか、私がしたことを行うことができます。

http://jslint.webvm.net/mylintrun.jshttp://www.jslint.com/fulljslint.js をダウンロードして、任意のディレクトリに配置します。

次に、mylintrun.jsの先頭に次の行を追加します。

var filename= arguments[0];

mylintrun.jsのコードの最後の行( "print(...)")を次のように変更します。

 print ( filename + ":" + (obj["line"] + 1) + ":" + (obj["character"] + 1) + ":" + obj["reason"] );

これにより、mylintrun.js出力で、VIMクイックフィックスウィンドウ(:copen)で使用できるエラーリストが生成されます。

VIMで次のように設定します。

set makeprg=cat\ %\ \\\|\ /my/path/to/js\ /my/path/to/mylintrun.js\ %
set errorformat=%f:%l:%c:%m

あなたは変更する必要がどこ/私の/パス/に/ JSのSpiderMonkeyへのパスに/my/path/to/mylintrun.jsあなたはJSファイルを置くパスに。

これで、VIMで:makeを使用し、quickfixウィンドウ(:he quickfix-window)を使用してエラーからエラーにジャンプできます。


なぜバッファを用意し、それをmylintrunの引数として渡すのですか?
jamessan

@jamessan:mylintrun.jsスクリプトはstdinからファイルを読み取ります。つまり、それがキャッティングの目的です。エラー出力の場合、mylintrun.jsにはファイル名も必要なので、引数として指定します。スクリプトを変更して、stdinから読み取る代わりにファイルを開いて読み取ることができます(猫を不要にする)。しかし、私はこれに
煩わされ

あなたのマシンの「SpiderMonkeyへの道」は何ですか-私にはいくつかあります
フランケンシュタイン博士

mylintrun.jsを取得できません。別の場所があります。死んでいるように見える
bluekeys 2012年

1
mylintrun.jsおよびfulljslint.jsへのリンクが壊れているため、この回答は依存度が高いため、有用ではありません。機能しているURLで更新できますか?そうでなければ、私はこの答えを削除する必要があります。これはかなり見栄えがよく、多くの人々を助けてきたので、これは残念です。ありがとう。
Kev

187

IMOのベストプラクティスは次のとおりです。

  1. Syntastic Vimプラグインをインストール-多くの言語に最適な構文チェッカーに加えて、Vimのロケーションリスト(== quickfix)ウィンドウと統合します。
  2. 以下の2つのオプションのいずれかを選択します。

JSLint

  1. jslお好みのパッケージマネージャー(Ubuntuのapt-get、Macのホームbrewなど)を使用して(JSLint実行可能ファイル)をインストールします。

コミュニティ主導のjshint.com(JSLintより優れている)

  1. お気に入りのパッケージマネージャーを使用してnode.jsをインストールします。
  2. Node Package Managerをインストールします: 'curl https://npmjs.org/install.sh | sh ' EDIT:npmはnode.jsの一部になりました
  3. jshintをグローバルにインストールします: 'npm install jshint -g'
  4. jshint 設定ファイルを$ HOMEディレクトリに置きます: '〜/ .jshintrc'
  5. Syntasticsyntax_checkers/javascript.vimファイルをこれで上書きします- 編集:最新の構文バージョンではもはや必要ありません。

楽しい!:)


1
私はこれを今試してみています。Syntasticのクローンを作成し、「rake install」コマンドを使用して、javascrip.vimファイルを自分のものに置き換えました。まだそれを使用する方法を理解することはできません、:SyntasticEnableは私の知る限りでは何もしません。私は..かかわらしようとしておこう
クレスモグレン

2
OK、Syntasticにはballon_evalが必要ですが、MacVimではサポートされていません。ひどすぎる..
Claes Mogren、

1
それを追加しようとしました、それ(またはそれのよりきれいなバージョン)が引っ張られることを 願っていますgithub.com/scrooloose/syntastic/pull/47
Claes Mogren

9
何も起こっていないように見える理由を理解するために長い時間を費やしました... Oryの.jshintrcをプルした場合、jdefの読み込みに失敗する原因となる「predef」オブジェクトの「google」の後に末尾のコンマがあることに注意してください。静かに失敗するSyntastic。
ThePants 2012

1
Windows用のJSL:javascriptlint.com/download.htmも、この問題のjsl.vimファイルに気を付ける:vim.1045645.n5.nabble.com/...
アンドリュー

17

別のオプションは、Jesse Halletのjslint.vimです。GitHubで利用でき、VimのQuickFixウィンドウの有無にかかわらず動作します。それは素晴らしいプラグインです!


1
+1。よく働く。vim.org/scripts/script.php?script_id=2729から便利にダウンロードできます。Windowsでは、Rubyをインストールする必要があることに注意してください。
mm2001

3
また、下記のJSHintも必ずチェックしてください。
Alex Kahn、

プロジェクトは現在開発中ではありません。
OrangeTux 2014年

6

node-lintを使用してとても満足しています

sudo npm -g install jslint

次に、これをあなたのどこかに打つ .vim

set makeprg=jslint\ %
set errorformat=%-P%f,
        \%E%>\ #%n\ %m,%Z%.%#Line\ %l\\,\ Pos\ %c,
        \%-G%f\ is\ OK.,%-Q

今すぐ:makejslintを実行します。エラーはクイックフィックスウィンドウに表示されます。


3

以下は、2012年11月に更新されたMac OSの手順です。Node.js を取得するためにHomebrewがインストールされていて、Syntastic for Vimがすでにインストールされているとします(https://github.com/carlhuda/janusを使用します)。これは自動的に提供されます):

$ brew install node.js
$ npm install -g jshint

次に、 '/ usr / local / share / npm / bin'をPATHに追加します(おそらく〜/ .bashrcにあります)。たとえば、次の行を追加します。 export PATH="$PATH:/usr/local/share/npm/bin"

ターミナルを再起動して確認してください

$ jshint

コマンドラインから実行可能です。SyntasticはjsHintを自動的に検出します。MacVimを再起動してお楽しみください!


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.