web-dev-qa-db-ja.com

vimのクイックフィックス機能はどのように使用しますか?

私はかなり新しいVimユーザーであり、その学習曲線は非常に急勾配であることがわかりました(少なくとも私にとって)。 JavaScript-Lintエラーチェック用に このvimスクリプト をインストールしました。バッファーを保存すると、vimのquickfixウィンドウにエラーが表示されます。

ただし、次に何をすべきかわかりません。すべてのエラーを「スクロール」するにはどうすればよいですか?クイックフィックス「ウィンドウ」を閉じるにはどうすればよいですか?コードに変更を加えた後にエラーをチェックするにはどうすればよいですか?

Vim quickfix docsを見てきましたが、コマンドの量が圧倒的で、欲しいものが見つからないようです。任意の助けをいただければ幸いです。

副次的な質問:javascriptlintに.htmlファイルにあるコードのjsエラーをチェックさせる方法はありますか?

ありがとう!

106
hora

あなたが言ったように commands がクイックフィックスのためにたくさんありますが、私はそれらの小さなサブセットのみを使用することに気付く傾向があります:

_:copen " Open the quickfix window
:ccl   " Close it
:cw    " Open it if there are "errors", close it otherwise (some people prefer this)
:cn    " Go to the next error in the window
:cnf   " Go to the first error in the next file
_

私はこれを_:make_および_:vimgrep_と共に使用する傾向があるため、Javascript lintチェッカーについてコメントすることはできませんが、これは開始するための何かを与えるはずです。

JavascriptLintの一般的な使用に関しては、私はJavaScriptプログラマーではありませんが、スクリプトが「JavascriptLint」という関数を公開しているように見えるので、手動で呼び出す場合は、:call JavascriptLint()を使用できます。ただし、ファイルのディスクコピーでは機能するため、最初に保存する必要があります。コマンドラインjslがhtmlファイルで機能する場合(のみ)、htmlファイルで:call JavascriptLint()を使用して内部javascriptをチェックできる必要があります。次のこともできます。

_autocmd BufWritePost,FileWritePost *.html call JavascriptLint()
_

自動化する。 jslがhtmlファイルをサポートしていない場合(アプリケーションにパッチを適用するか、作成者に変更を依頼する以外)、それはおそらく失われた原因です...

129
DrAl

クイックフィックスリスト(または、そのための場所リスト)をナビゲートする最も簡単な方法は、 unimpairedプラグイン です。

クイックフィックスウィンドウにデータが入力されると、[qおよび]qがクイックフィックスリストでそれぞれ前後に移動します。 [Q]Qは最初と最後に移動します(リストにアイテムが1つしかない場合に特に便利です。これにより、vimは[q]qについて文句を言います)。ワークフローは次のとおりです。

  1. クイックフィックスリストに入力するコマンドを実行します
  2. [Qと入力して最初のアイテムに移動します
  3. [qおよび]qを使用して、後続のアイテム(ある場合)をスクロールします

Syntasticを使用している場合は、quickfixリストの代わりに場所リストを取得します。問題ない; [L]L[l、および]lを同じように使用するだけです。

unimpairedには他にも便利なマッピングがたくさんあります-[e]e「バブル」行は上下に、[<Space>]<Space>は上に空白行を挿入し、以下など。以前ここで誰もそれについて言及していなかったことに驚いた。これはおそらく、2009年に質問されたものの、2010年1月まで存在しなかったためです。

54
Chip Hogg

:cc 2(またはその他の数字)を使用して、この場合、クイック修正ウィンドウの2番目のエラーにジャンプすることもできます。 :cn:cc 4などでナビゲートすると、問題の行にカーソルが置かれます。

19
Andy Stewart

.vimrcファイルに次の2行を追加します。

map <C-j> :cn<CR>
map <C-k> :cp<CR>

Ctrl-jとctrl-kを使用してエラーをナビゲートできるようになりました。これは、標準の上下運動コマンドjとkを模倣しています。

19
Amit Moscovich

JavaScriptの構文チェックを統合する最良の方法は、 Syntastic Vimプラグイン を使用することです。これはVimのlocation-list =(これはquickfixと平行)ウィンドウ。

私は この質問この質問 の答えを書きました。そして、それを行う方法に加えて、ソースコードブラウジング/ tag-listコミュニティ駆動 jshint.com を使用したVim JSLint IMO)およびMozillaのDoctorJS(以前のjsctags)。

8
Ory Band

クイックフィックスウィンドウは、他のvimウィンドウとほとんど同じように操作されます。j行下、k行上、:cnで次のエラー/警告にジャンプします。

実験!

6
just somebody

たぶん、この質問が書かれたときにはこのオプションが存在していなかったかもしれません(または、.vimrcに何かがあり、これが起こるので恥ずかしいです)、Quickfix Listを受け取ったとき、 jkを使用して<CR>(つまりEnterキー)を押すと、ファイル内のその場所にジャンプします。

次に、Quickfix Listに戻るには、「ウィンドウを下に移動する」ためにCtrl + Wjと入力して、戻ってきます。

最後に、完了したら、通常のウィンドウを閉じるのと同じように、:qと入力します。

6
LondonRob

クイックウィンドウを開閉してエントリ間を移動する方法に関する@DrAlの優れた回答に加えて、他のクイックフィックスナビゲーションコマンドの一部を表示する画像を作成しました。

以下の3つのファイルの各グループは、クイックフィックスの結果のセットを表します。 vimgrepから。古くて寒いのは、歴史的な結果セットを調べるためです。 enter image description here

1
run_the_race