vimでテキストを検索するときはいつでも、入力してから探して/いる文字列を入力します。
しかし、文字列が長い場合、これを複数回実行したい場合、複数回入力する必要がないようにする方法はあり/andthisreallylongstring
ますか?
vimでテキストを検索するときはいつでも、入力してから探して/いる文字列を入力します。
しかし、文字列が長い場合、これを複数回実行したい場合、複数回入力する必要がないようにする方法はあり/andthisreallylongstring
ますか?
回答:
検索が完了したら「n」を押すと、前のアクション(検索)が繰り返されます。
N
前の結果に移動します。
/
最後の検索用語を思い出します
q/
、すべての最近の検索語を含む編集可能なウィンドウが表示されます。
/
Enterキーを押すと、前の検索が繰り返されます。叩く?
と前回の検索後方を繰り返すことになります入力します。
/Ctrl-F
それに代わるq/
ものは、より簡単なニーモニックかもしれません(ctrl-f == find)。qと同様に、コマンドモードでも機能します。
検索する文字列がカーソルの下にある場合は、*入力して前方#に検索したり、後方に検索したりできます。
あなたの検索をより効率的にできる2つの追加のヒントがあるset hlsearch
と
set incsearch
。
set hlsearch
、まあ、検索結果を強調表示します。:noh
不要になったら入力してオフにします。
set incsearch
インクリメンタル検索をオンにします。
から抽出 :help incsearch
検索コマンドの入力中に、これまでに入力したパターンが一致する場所を表示します。一致した文字列が強調表示されます。パターンが無効であるか見つからない場合、何も表示されません。画面は頻繁に更新されますが、これは高速端末でのみ役立ちます。
を使用しないincsearch
場合、<CR>
検索キーワードを押した後にのみ結果が表示されます。
例:
検索したい wildignore
入力する/wild
と、最初の一致が自動的に強調表示されます。
次に入力するi
と、次の正しい一致に進みます。
を押し/て検索を開始した後、上矢印キーを使用して検索履歴をスクロールできます。
正規表現を入力すると、検索語全体を入力する必要がなくなります。 and.*longstring
ヤンクされたテキストを検索するために従うことができる素敵なパターンがあります。その後、検索以外の方法でナビゲートした場合、単語を入力する必要さえありません。要約すると、検索する単語の最初の文字にいる場合:
v
e
y
/
Ctrl-r
0
Enter
(その後、nまたはNで次の一致を続行します)
ただし*
(または#
)は、これらすべてのコマンドとほぼ同じことを実現します。唯一の違いは、指定する単語の量によって柔軟にできることです(eではなく、単語の最後まで、必要なだけ選択できます(9lなど))
/string
—文字列を前方に検索?string
-文字列を検索して戻るn
—文字列の次のインスタンスを検索するN
—文字列の前のインスタンスを検索するプログラミングするときには多くの時間を検索したいと思いますaVeryLongVariableNameInTheProgram
。
vimでは、テキストをバッファ/レジスタに簡単にヤンクしてから検索できます。
"Byw
テキストaVeryLongVariableNameInTheProgram
をバッファB にヤンクするには(お気に入りを選択し、Bを使用しました)/^RB
(スラッシュ、Ctrl-R、B)検索バッファにバッファーBを貼り付けるもちろん、単一の単語をヤンクする代わりに、行の終わりなどにヤンクすることもできます-私はたまたま上記のシーケンスを使用しています。