私は次のことを試そうとしました:
だが
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
使用する場合があることに注意してください。gg
G
@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を使用します