私は次のことを試そうとしました:
だが
5dd
与える
E492:エディターコマンドではありません:5dd
私はそれから試しました:
5d
これは、1行だけを削除します。複数の行を削除するにはどうすればよいですか?
私は次のことを試そうとしました:
だが
5dd
与える
E492:エディターコマンドではありません:5dd
私はそれから試しました:
5d
これは、1行だけを削除します。複数の行を削除するにはどうすればよいですか?
回答:
コマンドモード(別名「Exモード」)でコマンドを入力しているようです。そのコンテキストで:5dは、行番号5が削除されます。が5dd意図したとおりに機能するために、つまり、カーソルで始まる後続の5行を削除します:。通常モードで入力し、コマンドの前にを付けないでください。
私はこれが簡単だと思います
/superuser/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の間の行が削除されます。
$して、ファイルの最後の行を示すこともできます。したがって:45,$d、45から最後まですべての行を削除します。
                    /<\/div>/
                    :.,[end_line_no]d
                    通常モードで使用するためにリストされたコマンド(:コマンドモードの接頭辞)。
Vimでテスト済み。
ライン量別:
行番号で:
Backwards range given, OK to swap (y/n)?非ビジュアルモードの方法を使用して行番号を確認する場合は、別の簡単な方法を提案します。
例
45行目から101行目までを削除したい。
私の方法は、コマンドモードで以下のコマンドを入力することをお勧めします:
45Gd101G
それは読む:
45行目(
45G)に移動しd、現在の行から101行目()までのテキスト()を削除します101G。
の代わりにをvim使用する場合があることに注意してください。ggG
@Bonnie Vargheseの回答と比較してください。
:45,101d[enter]
上記の彼の回答のコマンドenterでは、を含めて9回入力する必要がありますが、私の回答では8〜10回入力する必要があります。したがって、私の方法の速度は同等です。
個人的に、私は自分自身が好む45Gd101G以上:45,101dます。viのコマンドの構文に固執するように私は、このケースであるため、
+---------+----------+--------------------+
| syntax  | <motion> | <operator><motion> |
+---------+----------+--------------------+
| command |   45G    |        d101G       |
+---------+----------+--------------------+
              Escキーを押して、編集モードになっていないことを確認します。削除する最初の行にカーソルを置きます。と入力し:5ddます。現在の行と次の4行を削除する必要があります。
または、行番号付けをオンにしている場合...
Escキーを押して、編集モードになっていないことを確認します。:#,#d「#」が削除する開始行番号と終了行番号を表す場所を入力します。
すべての行を削除するには-ESC gg dGを使用します。数行を削除するには5と言ってからESC 5ddを使用します