vi/vimで複数行を一括削除する方法
小粋空間 » Linux » vi/vimで複数行を一括削除する方法
vi/vimで複数行を一括削除する方法を紹介します。
1.問題点
vi/vimで複数行を削除する場合、"dd"または、削除したい行数の数字を入力した後、"dd"を入力していますが、指定した範囲をまとめて削除する方法がわかりません。
ということで、vi/vimで複数行を一括削除する方法を紹介します。
2.複数行を一括削除する
複数行を一括削除するには、まず削除開始行で、
ms
を入力します(コマンドモードに切り替える必要はありません)。
次に終了行で、
me
を入力し、そのあと、
:'s,'ed
を入力すれば、msからmeまでの行が削除されます。
3.解説
"m"はカーソルの位置を2文字目に記録するという機能があります。
"ms"と"me"は"s"と"e"にそれぞれカーソルの位置を記録します。
"s"と"e"はstartとendの意味なので、別の文字でも構いません。
話がそれますが、行番号で複数行削除するコマンドは、コマンドモードで、
:開始行,終了行d
となります。
たとえば、
:3,7d
と入力すれば、3行目から7行目までを削除します。
話を戻して、
:'s,'ed
は、":"でコマンドモードに切り替えて、"s"から"e"までを削除(d)するという意味になります。
開始を"mb"、終了を"mo"に変えた場合は、
:'b,'od
になります。