次の非常に単純なファイルがあるとしましょう
a
b
c
d
e
そして、各行の後に空行を追加することにしました。いくつかの異なる方法がすぐに思い浮かびます。私たちはそれをするだけかもしれません(したがって、失敗を受け入れます)。のようなマクロを記録し、qqo<ESC>jq
それを数回繰り返す場合があります。
当時、私には他の2つの方法がより明白に思えました。
まず、:norm
コマンドo
を各行に発行すると思いました。だから私は走る:%norm o
。しかし、実際に何が起こるかというと、5行の空白行があり、その後に上記の分離されていない行が続きます。私はこれを%norm
、vimが実際にこの5行のファイルの最初の5行で次の通常のコマンドを発行してメッセージを取得することを意味すると解釈します。o
コマンドは、新しい行を作成し、vimのは、それはいくつかの他の識別子によって、実際に行番号で参照していないという意味で「ダム」です。
さて、恥ずかしかったです。承知しました。上記の方法が機能するかどうかを確認するために、他にもいくつか試してみましたが、残念ながらできませんでした。好奇心から、私は他のお気に入りの大量適用方法を試しました。これは私を試してみました:g/^/norm o
。驚いたことに、これはうまくいきます!だから私の目には、vimは上記と同じようにここでは「ダム」ではなく、単に行番号だけではなく行を参照しているようです。
正確には何が起こっているのですか?
:%s/$/\r/
、または次のようにします::%s/\n/\r\r/
。要点は、改行をと一致させることができるが、置換値の\n
ように記述する必要があることです\r
。