次の行を含むファイルがあります。
aa
bb
cc
dd
これを次のように変換したい:
aa
aa
bb
bb
cc
cc
dd
dd
これはVIで可能ですか?
この単純なものを試してください:
:g/^/norm yyp
さらに別のもの(短い):
:%s/.*/&\r&
別のもの:
:%!sed p
g/^/t.
( g
for ) コマンドはglobal
、パターンに一致する行を探します。
指定したパターンは で^
、すべての行に一致します。
t
コピーして貼り付け、最後
にdot
下に貼り付けるように指示します。
私は簡潔さのために勝ちますか?
グローバル コマンド を使用g
して、ファイル内のすべての行を操作します。
:g/^/norm yyp
このg
コマンドは、パターンに一致するすべての行で動作します。^
どの行にもマッチするパターンです。現在の行をヤンクして貼り付けるnorm
コマンドを実行します。も機能します。yyp
:g/^/norm Yp
コマンドの詳細:help global
については、 を参照してください。 また、 のvim wikiページも参照してくださいg
。