Saya mengerti 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 dapat mengetik du"
mengharapkan editor untuk "menghapus sampai "
karakter berikutnya ditemukan"
Yang paling dekat yang saya tahu adalah di d9w
mana 9
jumlah kata yang akan dihapus.
Adakah yang tahu kalau ini mungkin?
Jawaban:
Gunakan dtc, di mana c adalah karakter apa pun, misalnya untuk Anda, yang Anda inginkandt"
Ini akan dihapus hingga tetapi tidak termasuk c .
Jika Anda memiliki:
Dan kursor berada di ruang pertama dan Anda mengetik dt!, Anda akan mendapatkan:
Juga dfc.
Ini akan menghapus hingga dan termasuk c .
Menggunakan df!contoh yang sama di atas akan memberi Anda:
Hampir setiap "gerakan" dapat digunakan untuk
d
,c
,y
dan perintah yang sama.sumber
dT,
dandF,
.d/word
pencarian hinggaword
. Itu harus diikuti oleh enter (untuk menutup pencarian).Untuk menghapus penerusan hingga tipe karakter 'X' dtX
Untuk menghapus maju melalui tipe karakter 'X' dfX
Untuk menghapus mundur hingga tipe karakter 'X' dTX
Untuk menghapus mundur melalui tipe karakter 'X' dFX
sumber
Input dt # (bukan perintah:, gunakan seperti gerakan seperti G)
akan menghapus dari kursor sampai tetapi tidak termasuk #. Anda dapat mengganti char apa pun dengan #.
sumber
Sepertinya @Arcege sudah menjawab pertanyaan, tetapi saya
d/l
menghapus sampai karakterl
; karakter lain juga berfungsi.sumber
w
pindah ke kata berikut.l
pindah ke karakter berikut.Jadi itu
d9l
untuk menghapus 9 karakter berikutnya.sumber
l
adalah tombol panah kanan Vim, jadi Anda benar-benar menghapusnya. Sebaliknya,d9h
akan menghapus 9 karakter yang tersisa.