Pertanyaan vi shortcut untuk menghapus "sampai karakter X berikutnya"


Saya memahami bahwa vi memiliki tombol pintas untuk menghapus karakter, kata, dan garis dengan berbagai opsi.

Namun, saya tidak dapat menemukan ini:

  • hapus dari kursor ke karakter yang ditentukan berikutnya

Misalnya, saya mungkin mengetik du" mengharapkan editor untuk "menghapus hingga berikutnya " karakter ditemukan "

Yang paling dekat yang saya tahu adalah d9w dimana 9 adalah jumlah kata yang harus dihapus.

Apakah ada yang tahu apakah ini mungkin?


153
2017-10-08 15:43


asal


Jika Anda tertarik dengan Vi dan Vim, mereka memiliki situs SE sendiri sekarang: Vi dan Vim - dessert


Jawaban:


Menggunakan dtc, dimana c adalah karakter apa pun, mis. untukmu, kamu mau dt"

Ini akan menghapus hingga tetapi tidak termasuk c.

Jika Anda punya:

delete until exclamation point!

Dan kursor berada di ruang pertama dan Anda mengetik dt!, Anda akan mendapatkan:

delete!

Juga dfc.

Ini akan menghapus hingga dan termasuk c.

Menggunakan df! pada contoh yang sama di atas akan memberi Anda:

delete

Hampir semua "gerakan" dapat digunakan untuk d, c, y dan perintah yang serupa.


248
2017-10-08 16:19



Persis apa yang saya cari! Terima kasih @Arcege! - kctang
Agaknya mnemonic t untuk "till"? Jawaban bagus. - overthink
Anda juga dapat menghapus ke contoh sebelumnya dari suatu karakter dengan versi perintah gerakan yang dikapitalisasi. Mungkin lebih bermanfaat untuk koma - dT, dan dF,. - Joel Ostblom
Ini tidak berfungsi di beberapa baris. - 0xcaff
Bisakah ini dilakukan melalui berbagai garis? - Jim


  • Untuk menghapus maju hingga karakter 'X' ketik dtX

  • Untuk menghapus maju melalui karakter 'X' ketik dfX

  • Untuk menghapus mundur ke karakter 'X' ketik dTX

  • Untuk menghapus mundur melalui karakter 'X' ketik dFX


38
2018-06-02 18:02





Input dt # (bukan perintah:: gunakan seperti gerakan seperti G)

akan menghapus dari kursor hingga tetapi tidak termasuk #. Anda dapat mengganti char untuk #.


29
2018-06-21 02:44



Ini adalah jawaban yang benar! df # akan menghapus # juga. - Viet
telah mencari ini, ini luar biasa - Nadeem Khedr


Sepertinya @Arcege sudah menjawab pertanyaan itu, tetapi saya melakukannya d/l untuk menghapus hingga karakter l; karakter lain juga akan berfungsi.


15
2017-10-09 11:42



Ini berfungsi untuk hal-hal di seluruh baris baru. - jasonszhao
Catatan: ini harus diikuti oleh Enter. - Eric Lebigot


w pindah ke kata berikut. l pindah ke karakter berikut.

Jadi begitu d9l untuk menghapus 9 karakter berikutnya.


6
2017-07-10 19:48



Dekat, l adalah tombol panah kanan Vim, jadi Anda benar-benar menghapusnya. Sebaliknya, d9h akan menghapus 9 karakter yang tersisa. - Walf