Bagaimana cara menghapus baris berikutnya di vim?

10

Di emacs, setiap kali saya ingin menghapus beberapa baris teks, saya hanya menggunakan Ck sampai semua teks hilang. Namun, dalam vim sepertinya sedikit lebih kompleks. Saya tahu saya bisa melakukan d$untuk menghapus sampai akhir baris dan dduntuk menghapus seluruh baris saya aktif, tetapi bagaimana saya menghapus semua baris berikutnya ?

Jason Baker
sumber

Jawaban:

5

Seperti ini:

:+1d
Ignacio Vazquez-Abrams
sumber
16

Asumsi: Anda ingin berakhir di garis yang Anda mulai.

Jawabanku: jddk

  • j (bergerak ke bawah)
  • dd (menghapus baris saat ini)
  • k (bergerak ke atas)

Cobalah - cepat! Faktanya, dua penekanan tombol kurang dari jawaban yang saat ini diterima karena:

  1. Anda tidak perlu menahan [Shift]untuk memasukkan karakter ':' dan plus '+', dan
  2. Anda tidak perlu yang tersirat [Enter]di akhir urutan, karena jddkdimasukkan semua dalam mode visual sebagai lawan dari mode perintah .

Plus, jddksemuanya ada di baris home keyboard.

Saya menghabiskan waktu lama menggunakan h, j, k, l untuk bernavigasi vi, jauh sebelum perangkat lunak emulasi terminal yang saya gunakan mulai mendukung tombol panah. (Saya bicarakan ~ 20 tahun yang lalu ;-)

Chris W. Rea
sumber
1
hjkl lebih cepat. Saya tidak pernah menggunakan keyboard yang tidak memiliki tombol panah di atasnya, dan saya mulai sangat menghargai kemanjuran keymappings ini sekitar 10 menit setelah saya berhenti kesal pada ketidaktepatan mereka.
intuited
2

Anda mungkin juga tertarik dengan mode visual. Cukup gunakan vuntuk masuk dan ymencabut atau dmenghapus. Memeriksa :helpadalah tempat yang bagus ketika Anda terjebak juga. Misalnya :help deleteakan memberi Anda manual untuk sebagian besar perintah penghapusan yang biasa.

Joe Bane
sumber
0

Jika Anda ingin menghapus banyak baris dalam satu baris, Anda dapat menggunakan dduntuk menghapus baris yang sedang Anda buka, lalu terus tekan (atau tahan) .(titik) untuk mengulangi perintah.

pemain coneslayer
sumber
atau ketik Ndd di mana N adalah jumlah baris yang akan dihapus. katakanlah, untuk menghapus baris saat ini dan dua baris berikutnya (3 total), ketik 3dd
quack quixote