Saya tahu bahwa saya dapat menghapus dari kursor sampai dan termasuk kemunculan pertama karakter x dengan d/x<CR>
atau dengan v/x<CR>d
jika saya ingin melihat pilihan pertama dan kemudian menghapus. Bagaimana cara menghapus dari posisi kursor saat ini sampai n th terjadinya x ?
Misalnya, jika kursor adalah setelah spasi pertama dalam
yada yada yada
yada yada x
yada yada yada x
yada yada x
xx
dan saya mengetik perintah untuk menghapus hingga x ketiga hasilnya harus:
yada
xx
search
cut-copy-paste
Erwin Rooijakkers
sumber
sumber
f
dan teman-teman (F
,t
,T
,;
): misalnya2fx
akan membawa Anda ke keduax
, atau2;
akan mengulangi yang terakhirf
dua kali.Anda dapat melakukan ini dengan mengetik
dimana:
sumber
biasanya digunakan dalam vim untuk mengulangi makro "n" kali.
jadi untuk menghapus sampai kemunculan x pertama, Anda akan menggunakan
1dfx
. Demikian pula, untuk menghapus hingga kemunculan x yang ke-3, Anda akan menggunakan3dfx
.sumber
@x
manax
register Anda. Yang Anda maksud adalah perintah mode normal.<n>macro
itu bukan notasi standar dalam vim untuk makro dan karena jawaban Anda menggunakan perintah mode normal, itu hampir sama dengan yang kapil.Diberikan:
di mana yang
$
mengindikasikan ujung garis (:set list
mode), jika kursor berada di awal detikyada
di baris pertama, pertama kita harus mencadangkan ke ruang sebelumnya menggunakan h, untuk memasukkannya dalam penghapusan. Lalu saja 4d/xEnter. Dengan kata lain, hanya hitungan di depan d/x. Hasilnya persis:sumber