Vimの置換コマンドを使用すると、特定の範囲の行を指定できることがわかります。
:12,24s/search/replace
通常の検索でも範囲を指定できるようにしたい。何かのようなもの
:12,24/search
(少なくとも私のVim設定では)これは機能していないようですので、これを達成する方法を誰かが知っていますか?
ありがとうございました。
:help search-range
その後
:help /\%>l
本質的に:
/\%>12l\%<24lsearch
あきらさんからの素晴らしい回答。しかし、少し掘り下げた後、代替案を見つけました。エレガントではありませんが、簡単に入力できます。
:12,24g/search/
これにより、迷惑なプロンプトが1つ表示されますが、目的の文字列を含む範囲内の最初の行に表示されます。
本当に行番号が必要ですか?別の方法は、範囲を視覚的に選択することです。
/\%Vwhat_to_search
を使用して検索します。これはタイプするのは簡単ですが、あなたが要求したものを直接ではありません;-)
:help%Vを参照してください
[編集]すばらしい、別の範囲を選択して検索を行った後、検索範囲を変更できることを学びました。ESCを押してnを押し、この範囲を再度選択して検索を繰り返すと、範囲を選択解除できます。 Vimはいつも楽しいサプライズに最適です。
置換コマンドを引き続き使用しますが、元の例にgc
フラグを追加します。
:12,24s/search//gc
:help search-range
から
[範囲内を検索するには] ":substitute"コマンドに 'c'フラグを付けて使用します。
例::.,300s/Pattern//gc
このコマンドは、カーソル位置から300行目までの「パターン」を検索します。試合で「q」と入力して停止するか、「n」と入力して次の試合を検索できます。
マークにaとbがある場合、検索はaとbの間の領域に制限できます。
/\%>'a\%<'bSearchText
これはcmapで簡略化できます
cmap vmsab /\%>'a\%<'b
cmap vmscd /\%>'c\%<'d
Narrow Region plugin を使用して、検索または変更する必要がある範囲で一時バッファーを開くことができます
:900,1000NarrowRegion
次に、検索を行うことができます
/thing
または変更してバッファを書き戻します
:%s/this/that/g
:wq
ファイルの最後まで検索する場合は、$を使用します。
:3,$s/pattern//gn
3次元の行から最後まで検索します