Open KSR-Yasuda opened 3 weeks ago
vimgrep のヘルプを見ると、「先頭にジャンプしない」は検索フラグ j
を使用するとなっています。
!
は、「カレントバッファの変更ををすべて破棄する」となっていました。
'j' フラグ 'j' がない場合、Vim は最初のマッチへジャン プする。'j' がある場合は quickfix リストが更新さ れるだけである。[!] を付けるとカレントバッファに 対する変更は全て失われる。
grep の !
の挙動は、 Note に記載されているのですね...
Note: 検索結果へのリンク一覧を開くには :copen (:lgrep なら :lopen) が使 われる。:silent コマンドを使うことで grep の出力が画面いっぱいに表示されるの を防ぐことができる。:grep コマンドを ":grep!" 形式で使うと最初のマッチに自動 的にジャンプしなくなる。これらのコマンドを組み合わせて NewGrep コマンドを作る と次のようになる:
え、:vimgrep!
の挙動、ジャンプ抑制じゃない!?
以前は、そう思って使ってたような…。
:vimgrep!
で (ジャンプ時に) ファイル変更破棄、って、
:grep!
の ジャンプ抑制 とも逆だし、危ない感じですね。
更に、'grepprg'
オプションを internal
にした時の :grep
の !
の扱いは、:vimgrep
の !
の扱い (カレントバッファの変更を破棄) だという紛らわしさ。 😅
不具合の内容
vimgrep
,lvimgrep
, および そのadd
系のコマンド で、 コマンドに!
を付けて実行すると、検索後のファイルジャンプ なし だったかと思います。が、実施すると、
!
あり でも、検索後に ファイルジャンプしています。外部の grepコマンドを使う
grep
だと、発生せず。 Vimの internal grep のvimgrep
系 のみ で発生するようです。現象・ログ
上記のとおり。
再現手順
期待動作
vimgrep
系コマンドで、!
指定 の場合に、検索結果に ファイルジャンプしない。Vimのバージョン
9.1.785
OSの種類/ディストリ/バージョン
使用している or 関係していそうなプラグイン
(関係していそうなプラグインなどがあればココに書いてください)
その他
1415
vimgrep
時のpwd
関連の修正 をレポートしていました。該当コマンドなので、関連があるかも。