web-dev-qa-db-ja.com

`vi`の選択範囲内で検索および置換

viの選択範囲内で検索と置換を行うにはどうすればよいですか?

59
Agnel Kurian

ビジュアルモードでテキストを選択し(これがあなたがしていることだと思います)、次に:を押してコマンドの入力を開始すると、コマンドラインに次のようなものが表示されます。

:'<,'>

つまり、コマンドは選択に適用されます。次に、s/search/replace/と入力してEnterキーを押します。 (すべての一致を置換する場合は3番目のスラッシュの後にgを追加し、すべての置換の確認が必要な場合はcを追加します)

68
Chad Birch

ここで提案されている他のソリューションのほとんどは、選択が発生するすべての行で機能します。

選択範囲のみを検索して置換するには、まずテキストを視覚的に選択してから、次のようなコマンドを使用します。

:%s/\%VSEARCH/REPLACE/g

これにより、視覚的に選択されたセクションでのみ検索と置換が行われ、SEARCHがREPLACEに置き換えられます。複数の行を選択した場合、これは複数の行に対しても機能します。

81
Brad Parks

ビジュアルモードを使用して選択した場合:

:'<,'>s/regex/replacement/options

ビジュアルモードからコマンドラインモードに入ると('<,'>を押すと)、VIMは自動的に範囲(':')を配置します。

17
Tomalak

ここでいくつかのヘルプ 視覚的な選択での検索と置換

7
Lazarus