web-dev-qa-db-ja.com

Vimの `:cw`コマンド:最初のエラーへの自動ジャンプを回避する方法は?

Vimでは、:cwコマンドは、エラーがある場合にクイックフィックスウィンドウを表示し、カーソルをクイックフィックスウィンドウで最初に認識されたエラーにジャンプさせます(エラーがあるバッファーではありません)。同じジョブを実行するが、最初のエラーにジャンプせず、元の場所にとどまるコマンドはありますか?

1
xuhdev

クイックフィックスウィンドウが現在作業しているウィンドウからフォーカスを奪うことが問題である場合、解決策は非常に簡単です。これらの行を~/.vimrcに追加します。

augroup quickfix
  autocmd!
  autocmd Syntax qf wincmd p
augroup END

バッファ内の最初の一致する行にカーソルをジャンプするのは:cw[indow]コマンドではなく、クイックフィックスウィンドウに表示されるリストを作成したコマンドです。

あなたが持っているとしましょう:

foo
foobar
foobarbaz

あなたがやる:

:vim foo %

カーソルは、:cwなしで最初に一致する行に自動的に配置されます。

もしあなたがそうするなら:

:vim foo % | cw

カーソルは引き続き最初の一致する行に置かれるため、動作は:cwにリンクされません。

しかし、あなたがそうするならば:

:vim /foo/j % | cw

カーソルはそのままです。 :help :vimgrepを参照してください。

使用しているコマンドのドキュメントをチェックして、そのjフラグに相当するものがあるかどうかを確認する必要があります。

2
romainl