Hareketler camelCase veya snake_case'e nasıl sayılır?


20

Bir tanımlayıcı oluşturan birden çok sözcüğü ayırmak için camelCase veya snake_case kullanmak yaygındır. "Kelime" hareketler (eğer iyi olurdu b, w, e) o iç-tanımlayıcı sınırlarını tespit edecek.

Bu davranış nasıl sağlanabilir? (Eklenti / vimrc / ...?)


1
Bunu da bilmek istiyorumsnake_case
Martin Tournoij

Ortamla ilgili bir şeyler yapabilirsiniz iskeyword, ancak bunun birçok ek yan etkisi olacağından korkuyorum ... (bkz. :help word).
Martin Tournoij

@Carpetsmoker Bunun işe yaradığını düşündüm snake_case. Görünmüyor, soruya dahil.
Jasper

4
VimWiki sizi ele geçirdi: vim.wikia.com/wiki/Moving_through_camel_case_words Başkasının beni dövmediği bir noktada doğru bir cevap yazacağım.
Zengin

Şahsen bir camalCased kelimesini bütün bir kelime olarak görüyorum ve vaka veya alt çizgi nedeniyle bir kelimeye yarım girme fikrinden hoşlanmıyorum. Genellikle iç sözcük hareketlerini yönetmek için fve ttuşlarını kullanırım.
Sukima

Yanıtlar:


11

Eklenti CamelCaseMotion ne istersen yapar. Varsayılan olarak tuşlarla eşleşen ,w, ,b, ,enormale eşdeğerdir w, b, e. Hem CamelCase hem de snake_case için çalışır:

Örnek:

camelCaseWord

Kullanarak d,wkaldırılacak camel; tekrar kullanmak kaldırılacaktır Case.

Veya yılan kılıfı ile:

snake_case_word

d,wkaldırır snake_ve ikinci kez çıkarır case_.

"İç" hareketler de ( diwbeklendiği gibi di,w) beklendiği gibi çalışmalıdır .

İsterseniz, ayrıca varsayılan değeri geçersiz olabilir w, bve eşununla:

map <silent> w <Plug>CamelCaseMotion_w
map <silent> b <Plug>CamelCaseMotion_b
map <silent> e <Plug>CamelCaseMotion_e
sunmap w
sunmap b
sunmap e
omap <silent> iw <Plug>CamelCaseMotion_iw
xmap <silent> iw <Plug>CamelCaseMotion_iw
omap <silent> ib <Plug>CamelCaseMotion_ib
xmap <silent> ib <Plug>CamelCaseMotion_ib
omap <silent> ie <Plug>CamelCaseMotion_ie
xmap <silent> ie <Plug>CamelCaseMotion_ie

2
Bu eklentinin varsayılan eşlemelerinin ,komutu gölgelediğini (son f/ t/ F/ Thareketi tekrarla ) unutmayın, yani bu komutu kullanmak istiyorsanız, (tarafından yapılandırılmış 'timeoutlen') bir gecikme beklemeniz gerekir . Neyse ki, eklenti seçtiğiniz alternatif eşlemeleri kullanmanıza izin verir.
tommcdo

Bu eklenti, yani bazı yan etkileri var gibi: dwüzerinde , key);imleç olduğunda en k(yeni satır dahil) tüm çizgi kaldırmak gibi görünüyor, sadece beklenen ise keykaldırılacak ...
Martin Tournoij

1
Bu eklentiyi daha iyi buldum . Hareketi silme ile birleştirmek düzgün çalışır ve parantez içinde de durur.
Paschalis

Küçük bir nokta, ama ilk örnekte kesinlikle kaldırır camelve sonra Casedeğil Wordmi?
preferred_anon
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.