84

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

4

6 に答える 6

99

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

:'<,'>

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

于 2009-04-21T15:25:50.123 に答える
98

ここで提案されている他の解決策のほとんどは、選択が行われる行全体で機能しますが、これはあなたが望むものではないかもしれません.

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

:%s/\%VSEARCH/REPLACE/g

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

于 2009-07-09T14:09:54.430 に答える
23

選択にビジュアル モードを使用した場合は、次のようになります。

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

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

于 2009-04-21T15:25:35.553 に答える
8

ここでさらにヘルプが表示されます視覚的な選択で検索して置換します

于 2009-04-21T15:23:38.163 に答える
-3

ファイル内のすべてのインスタンスに対してグローバル検索と置換 (オプションの正規表現を使用) を実行する場合は、次のようにします。

:%s/foo/bar/g

ローカル置換を行うには g を省略します。

于 2009-04-21T15:28:20.087 に答える