私は以下のことを守ろうとしました。
しかし
5dd
与える
E492:エディタコマンドではありません:5dd
私が試してみました:
5d
これは単一行を削除するだけです。複数行を削除する方法
あなたがコマンドモードでコマンドを入力しているように聞こえます(別名「Exモード」)。そのコンテキストでは、:5d
は行番号5を削除します。 5dd
を意図したとおりに機能させるには、つまり、カーソル位置から5行連続して削除します。通常モードで入力し、コマンドの先頭に:
を付けないでください。
私はこれが簡単だと思う
https://superuser.com/questions/170795/how-can-i-select-and-delete-lines-of-text-in-vi
行番号がわかっていれば、複数の(範囲)行を削除できます。
:[start_line_no],[end_line_no]d
注: dは削除を表します
どこで、
start_line_noは削除したい開始行番号、end_line_noは削除したい終了行番号です。開始と終了を含む開始と終了の間の行は削除されます。
例えば:
:45,101d
45と101を含む45と101の間の行は削除されます。
通常モードで使用するためにリストされているコマンド : コマンドモード用).
Vimでテスト済み。
行数によって:
行番号で:
Backwards range given, OK to swap (y/n)?
と反応しますを押す Esc あなたが編集モードになっていないことを確認するためのキー。削除する最初の行にカーソルを置きます。 :5dd
を入力してください。現在の行とそれに続く4行が削除されます。
代わりに、あなたが行番号をつけているならば...
を押す Esc あなたが編集モードになっていないことを確認するためのキー。 :#,#d
を入力します。ここで、 '#'は削除される最初と最後の行番号を表します。
あなたが非ビジュアルモードの方法を好み、行番号を承認するなら、私はあなたにもう一つの簡単な方法を提案したいと思います。
例
45行目から101行目までのテキストを削除したい。
私の方法は、コマンドモードで下記のコマンドを入力することをお勧めします。
45Gd101G
それは読みます:
45行目(
45G
)に進み、現在行から101行目(101G
)までのテキスト(d
)を削除します。
vim
では、gg
の代わりにG
を使用することができます。
@Bonnie Vargheseの答えと比較してください。
:45,101d[enter]
彼の答えから上記のコマンドは9回入力する必要があります enter私の答えは8 - 10回入力する必要があります。したがって、私の方法の速度は同程度です。
個人的には、私はviのコマンドの構文にこだわるのが好きなので、45Gd101G
より:45,101d
を好みます。
+---------+----------+--------------------+
| syntax | <motion> | <operator><motion> |
+---------+----------+--------------------+
| command | 45G | d101G |
+---------+----------+--------------------+
d5dは5行を「カット」します
私は通常ちょうどそのように真ん中に数字を投げる:
d7l = 7文字を削除
特定の行トリガーの後に範囲を削除したい場合は、このようなものを使用できます。
:g/^TMPDIR/ :.,+11d
それは^TMPDIR
のすべての出会いの後に11行(包括的)を削除します。
dxxではなくdxdです
5行削除したい場合は、削除する最初の行の先頭にカーソルを合わせてd5d
すべての行を削除するには - ESC gg dG数行を削除するには5としてからESC 5ddを使用します。
Type:set number
(番号付き行用)