vi
の選択範囲内で検索と置換を行うにはどうすればよいですか?
ビジュアルモードでテキストを選択し(これがあなたがしていることだと思います)、次に:
を押してコマンドの入力を開始すると、コマンドラインに次のようなものが表示されます。
:'<,'>
つまり、コマンドは選択に適用されます。次に、s/search/replace/
と入力してEnterキーを押します。 (すべての一致を置換する場合は3番目のスラッシュの後にg
を追加し、すべての置換の確認が必要な場合はc
を追加します)
ここで提案されている他のソリューションのほとんどは、選択が発生するすべての行で機能します。
選択範囲のみを検索して置換するには、まずテキストを視覚的に選択してから、次のようなコマンドを使用します。
:%s/\%VSEARCH/REPLACE/g
これにより、視覚的に選択されたセクションでのみ検索と置換が行われ、SEARCHがREPLACEに置き換えられます。複数の行を選択した場合、これは複数の行に対しても機能します。
ビジュアルモードを使用して選択した場合:
:'<,'>s/regex/replacement/options
ビジュアルモードからコマンドラインモードに入ると('<,'>
を押すと)、VIMは自動的に範囲(':'
)を配置します。
ここでいくつかのヘルプ 視覚的な選択での検索と置換