dd /行の削除
ノーマルモードで、カーソルの位置する行を削除
削除された行の内容はレジスタ領域へコピーされるので、すぐには失われない。
u
で直前操作をやり直す、もしくは p
でレジスタ領域から削除した行内容を呼び出して別の行へ貼り付けることが可能。
別のアプローチとして、行内容を削除した後にすぐ行の編集にとりかかる場合は <Shift> + s
もしくは cc
でも可。この場合でも消した行内容はレジスタ領域に格納されているためヤンク( yank )
可能。
ノーマルモードから、複数行を削除
カーソル位置を基準として、複数行を削除したい場合は
削除したい行数dd
と打つ。
三行削除したい場合は
3dd
となど
指定行を削除
ノーマルモードからは無理、コマンドモードから行を指定した削除は可能
例えばドキュメント中の 20 行目を削除したい場合
:20d
このように指定すれば 20 行目が削除される。 この方法で削除した場合、カーソル位置は 20 行へジャンプする。
コマンドから行指定して削除した後、カーソル位置を変えられたくない場合は予めパイプを使ってコマンドを連結する。
例えばカーソルが現在 30 行目に位置している時、20 行目を削除した後カーソル位置のジャンプをパイプ記号でつなげて書いたコマンドを実行するなど。行を削除するコマンドの後にカーソル位置をジャンプするため、一行減った分を考慮して
:20d|29
このようにパイプを使ってコマンドを連結して書けば、行の削除後も現在カーソル位置は変わらない。別の方法としては
:20d
<Ctrl> + o
これでも良い