Vimでブロック検索と置換を行うにはどうすればよいですか?


8

Vimにテキストがあります

  1. ヒットCtrl+VしてVImをブロックモードにします
  2. 必要なテキストを強調表示します
  3. 入力:これは、このプロンプトを与えます:'<,'>
  4. プロンプトに正規表現を追加しますs/ /*/g。これで私が:'<,'>s/ /*/g残り、テキストが強調表示されます
  5. Enterキーを押します

残念ながら、それはブロックだけでなく、ブロック全体の行で動作します。とにかくブロック検索と置換を行う方法はありますか?

回答:


12

ビジュアルブロックモードでexコマンドを使用する場合:、それらは常に行全体で動作します。これを回避するには2つの方法があります。

  1. \%Vアトムは、視覚領域内一致します。試す

    :'<,'>s/\%V /*/g
    

    見る :help %V

  2. 一部のコマンドには、ライブv_sまたはv_rの特別な視覚バージョンがあります。見る:help visual-operators

これを機能させる方法がわかりません
Evan Carroll、

\%Vアトムは、パターンを制限して、ビジュアルセレクション内でのみ一致するようにします。試してみる:'<,'>s/\%V /*/g
DaveParillo、

1
このページには、あなたが何をしようとしているのかについての良い記事があります。vim.wikia.com/wiki/Search_and_replace_in_a_visual_selection
DaveParillo
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.