Vimで他の2文字の間に文字を挿入する

Vimで他の2文字の間に文字を挿入する

正規表現を使用してvimからパターンを検索し、正規表現が一致するものを変更せずに何かを挿入するにはどうすればよいですか?たとえば、ファイル内

foo123
bar4567

12zw231xy

数字ではなく、各文字と数字の間に改行文字を挿入して、次のようなファイルを作成したいと思います。

foo
123
bar
4567

12zw
231xy

答え1

:%s/\(\D\)\(\d\)/\1\r\2/g
  • \(\)キャプチャグループです。ここでキャプチャされたコンテンツは\1およびによって複製されます\2

  • \D数字ではなく\d数字です。

  • \rVimで改行文字になります。

これは次のように単純化できます。マジックモード正規表現が有効になっている\v:

:%s/\v(\D)(\d)/\1\r\2/g

関連情報