Jika Anda tidak keberatan menekan kombinasi yang berbeda dari cw
, maka saya yakin Anda bisa mendapatkan apa yang Anda inginkan dengan mudah, dengan menetapkan pintasan. Yang dapat Anda lakukan adalah menempatkan yang berikut ini
nmap <leader>a "1yiw:let @/=@1^Mciw
dalam .vimrc
file Anda . Perhatikan bahwa itu ^M
adalah kunci ambil kembali, dan bukan karakter ^
dan M
. Anda mendapatkannya dengan menekan Ctrl+ Vdalam mode insert diikuti oleh Enter. Sekarang, dengan ini didefinisikan, menekan <leader>a
akan melakukan hal yang sama cw
, tetapi sekarang kata (sebelum perubahan) akan ada di "register pencarian terakhir" Anda (yaitu, /
register), jadi menekan nsetelah Anda melakukan perubahan dan kembali ke mode normal akan membawa Anda ke kejadian berikutnya. Demikian juga, menekan Nakan membawa Anda ke kejadian sebelumnya.
Jalan pintas Anda tentu saja dapat memilih jalan pintas yang berbeda dari <leader>a
, tetapi saya hanya menemukan bahwa ini adalah jalan pintas yang sangat mudah diakses. Secara pribadi saya telah menetapkan <leader>
untuk ,
sehingga saya hanya perlu pers ,diikuti oleh a, tapi ini karena saya tidak menggunakan keyboard Amerika, sehingga saya \tersembunyi agak (saya percaya \adalah default <leader>
).
Penjelasan Idenya sangat sederhana. Tarik kata di bawah kursor ke register pencarian /
lalu lakukan cw
. Begitulah nmap <leader>a "/yciw
yang saya tuju, tapi sayangnya saya tidak berpikir bahwa Anda dapat menarik ke register pencarian, jadi solusinya adalah untuk menarik kata di bawah kursor ke 1
register, kemudian mengatur /
register sama dengan itu, dan kemudian lakukan cw
. Jadi "1yiw
adalah bagian yang menarik kata dalam di bawah kursor ke register 1
. Jika Anda tidak tahu kata-kata batiniah, Anda bisa melihatnya :help iw
. Setelah itu, :let @/=@1
diikuti dengan penangkapan Entermemasukkan isi 1
register ke dalam /
. Pada titik ini ndanNberfungsi sebagai kemunculan kata di bawah kursor berikutnya dan sebelumnya, dan kemudian ciw
dilakukan agar kata di bawah kursor dihapus dan Vim dimasukkan ke dalam mode penyisipan.
kata versus kata dalam Saya baru menyadari bahwa saya berasumsi bahwa Anda menginginkan seluruh kata di bawah kursor, dan bukan hanya dari sudut kursor dan seterusnya. Inilah mengapa saya menggunakan iw
bukannya di w
mana - mana. Jika ini bukan masalahnya, maka Anda harus menggunakan
nmap <leader>a "1yw:let @/=@1^Mcw
sebagai gantinya. Jika kursor berada pada huruf pertama dari kata tersebut, tidak ada perbedaan.
disclaimer Solusi ini mungkin tidak akan bekerja dengan baik jika Anda mencoba untuk menggunakannya pada sesuatu yang mengandung hal-hal yang berbeda dari huruf, misalnya dengan memiliki berdiri kursor pada \
atau dengan mengganti iw
dengan iW
, ib
, is
atau ip
atau sesuatu (meskipun saya tidak tahu mengapa Anda ingin fitur ini dengan seluruh kalimat)
*
pencarian. Terutama itu membuat*
secara visual memilih kata saat ini tanpa menggerakkan kursor Anda. Setelah terinstal, Anda bisa melakukan*ciw
untuk memasukkan kata lama di register pencarian dan mengubah kata. Maka Anda bisa menggunakann
dan.
.