置換をする前に、私は通常タイプする / foo 最初にパターンを検索します。
パターンに一致するすべての文字列が自動的に強調表示されます。
それから私は置換コマンドを書く方法を考え出す :%s/foo/bar/g
.
パターンが複雑な場合は、検索コマンドよりも置換コマンドを書くのがはるかに困難です。
強調表示された文字列に対してのみ置換を実行できる場合簡単になります。
例えば:
質問: 行の一部を翻訳
検索パターンを理解することができます: /[[(http)@!.{-}]]
しかし、置換コマンドを簡単に理解することはできません。
回答:
回答№1は6代わりのコマンドで検索パターンとして空の文字列を使用する場合は、以前に検索したパターンを置き換えることができます。
後 /foo
タイプ :%s//bar/g
通常モードでは、 "foo"を "bar"に置き換えます。
回答№2の場合は0
"c"フラグを使ってVimに置き換えの前に確認するように指示することができます。それは強調表示し、それが与えられたパターンにそれが見つけるあらゆるマッチの前に尋ねるのをやめます。
:%s/foo/bar/gc
回答№3の場合は0
私はちょうど考え出した:
:%s@@=substitute(submatch(0), "_", "/", "")@g
しかし、もっと良い方法はありますか?