Yanıtlar:
Tim Papa'nın abolish.vim
arasında teneke dönüştürmek camelCase
, MixedCase
, snake_case
, ve UPPER_CASE
, hem de dönüştürme (tek yönlü) dash-case
.
Herhangi imleci yerleştirin fooBar
, FooBar
, foo_bar
, veya FOO_BAR
ve kullanım
crc
dönüştürmek fooBar
crm
dönüştürmek FooBar
cr_
veya crs
dönüştürmekfoo_bar
cru
dönüştürmek FOO_BAR
cr-
dönüştürmek foo-bar
Evet var ve bir bonus olarak karşıt yöne gitmek için bir tane var!
Gitmesi durumunda wiki'den alıntı:
" Change selected text from NameLikeThis to name_like_this.
vnoremap ,u :s/\<\@!\([A-Z]\)/\_\l\1/g<CR>gul
ve zıt yön için:
" Change selected text from name_like_this to NameLikeThis.
vnoremap ,c :s/_\([a-z]\)/\u\1/g<CR>gUl
vnoremap tos :s/\C\(\U\&\S\)\([A-Z]\)/\1_\l\2/g<CR>
lh-dev ayrıca adlandırma stilleri arasında dönüştürme komutları sağlar:
:NameConvert snake
imlecin altındaki kelimeyi snake_case biçimine dönüştürür.
:%ConvertNames/\<m_\k\+(/getter/gc
kullanıcının dönüşümü onayladığı varsayılarak, her bir kalıp oluşumunu bir alıcı adına dönüştürür ( :h :s_flags
)
Desteklenen stiller iki çeşittir:
Böyle bir komut oluşturdum:
command! Ctl
\ exec "norm \"xygn" |
\ let @y = substitute(@x, "\\([^A-Z]\\)\\([A-Z]\\)", "\\1_\\2", "g") |
\ let @y = tolower(@y) |
\ exec "norm cgn\<C-r>y" |
\ let @@ = ":Ctl\n"
Önce değiştirmek istediğiniz bir dizeyi aramanız /nameToReplace
ve ardından çalıştırmanız gerekir :Ctl
; sonraki arama eşleşmesi gerçekleşir name_to_replace
. Komut kendisini @@
kayıt defterine koyar, böylece tuşuna basarak işlemi tekrarlayabilirsiniz @@
.