で選択範囲内で検索と置換を行うにはどうすればよいvi
ですか?
6 に答える
ビジュアル モードでテキストを選択し (それがあなたがしていることだと思います)、 を押し:
てコマンドの入力を開始すると、コマンド ラインに次のようなものが表示されます。
:'<,'>
これは、コマンドが選択範囲に適用されることを意味します。次にs/search/replace/
、入力してEnterキーを押します。g
(すべての一致を置換する場合は 3 番目のスラッシュの後に a を追加し、すべてc
の置換の確認が必要な場合は a を追加します)
ここで提案されている他の解決策のほとんどは、選択が行われる行全体で機能しますが、これはあなたが望むものではないかもしれません.
選択範囲のみを検索して置換するには、まずテキストを視覚的に選択してから、次のようなコマンドを使用します。
:%s/\%VSEARCH/REPLACE/g
これにより、視覚的に選択されたセクションでのみ検索と置換が行われ、SEARCH が REPLACE に置き換えられます。複数の行を選択している場合、これは複数の行でも機能します。
選択にビジュアル モードを使用した場合は、次のようになります。
:'<,'>s/regex/replacement/options
ビジュアル モード内から'<,'>
コマンド ライン モードに ( を押して)入ると、VIM は範囲 ( ) を自動的に配置します。':'
ここでさらにヘルプが表示されます視覚的な選択で検索して置換します
ファイル内のすべてのインスタンスに対してグローバル検索と置換 (オプションの正規表現を使用) を実行する場合は、次のようにします。
:%s/foo/bar/g
ローカル置換を行うには g を省略します。