Jika saya memiliki teks ini dalam vim, dan kursor saya adalah karakter pertama:
www.foo.com
Saya tahu bahwa saya dapat melakukan:
cw
untuk mengubah hingga periode pertama, karenaword
(huruf kecil w) berakhir pada tanda baca atau spasi putihcW
untuk mengubah seluruh alamat, karena aWord
(huruf besar) berakhir hanya di spasi putih
Sekarang, bagaimana jika saya memiliki ini:
stupid_method_name
dan ingin mengubahnya menjadi ini?
awesome_method_name
Keduanya cw
dan cW
mengubah semuanya, tapi saya hanya ingin mengubah bagian sebelum garis bawah.
Teknik fallback saya adalah c/_
, yang berarti 'berubah sampai Anda mencapai garis bawah berikutnya dalam pencarian,' tetapi bagi saya, itu juga menyebabkan semua garis bawah disorot sebagai istilah pencarian, yang sedikit mengganggu.
Apakah ada specifier seperti w
atau W
yang tidak termasuk garis bawah?
:nohl
?Jawaban:
Anda bisa melakukannya
cf_
. f tidak akan menyorot karakter yang dicari.Anda juga dapat melakukannya
ct_
jika Anda tidak ingin menyertakan _.sumber
f
bergerak maju ke karakter;F
bergerak mundur ke karakter;t
bergerak maju tepat sebelum karakter; danT
bergerak mundur ke karakter di sebelah kanan karakter target. Jadi contoh kedua Anda seharusnyact_
.ct_
persis apa yang saya inginkan. Ini sekarang telah menjadi bagian dari alur kerja reguler saya. Terima kasih!Letakkan ini di .vimrc Anda:
set iskeyword-=_
Kemudian _ akan diperlakukan sebagai batas kata (meskipun bukan batas WORD), dan cw dapat digunakan untuk hanya mengubah "luar biasa", dan cW untuk mengubah semuanya.
Lihat:
:help iskeyword
dan
:help word
untuk info lebih lanjut.
sumber
ct_
seperti kata ganda di bawah ini, karena singkat dan merupakan perilaku vim standar.camelcasemotion adalah plugin vim yang cukup praktis yang memungkinkan Anda menelusuri kata-kata saat menggunakan notasi garis bawah atau camelcase. Menggunakan plugin ini Anda dapat menempatkan koma di depan banyak perintah gerakan vim tradisional yang akan memungkinkan Anda untuk memperlakukan kata-kata dalam garis bawah atau notasi camelcase sebagai kata-kata penuh.
sumber