Réponses:
Tim Pope abolish.vim
peut le convertir entre camelCase
, MixedCase
, snake_case
et UPPER_CASE
, ainsi que la conversion (sens unique ) à dash-case
.
Placez le curseur sur l' un fooBar
, FooBar
, foo_bar
ou FOO_BAR
et de l' utilisation
crc
convertir en fooBar
crm
convertir en FooBar
cr_
ou crs
pour convertir enfoo_bar
cru
convertir en FOO_BAR
cr-
convertir en foo-bar
Oui , et en bonus, il y en a un pour aller dans la direction opposée aussi!
Citation du wiki en cas de disparition:
" Change selected text from NameLikeThis to name_like_this.
vnoremap ,u :s/\<\@!\([A-Z]\)/\_\l\1/g<CR>gul
et pour la direction opposée:
" 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 fournit également des commandes pour convertir entre les styles de dénomination:
:NameConvert snake
convertira le mot sous le curseur en snake_case.
:%ConvertNames/\<m_\k\+(/getter/gc
convertira chaque occurrence du modèle en un nom de getter, en supposant que l'utilisateur confirme la transformation ( :h :s_flags
)
Les styles pris en charge sont de deux types:
J'ai créé une commande comme celle-ci:
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"
Vous devez d'abord rechercher une chaîne que vous souhaitez remplacer /nameToReplace
, puis vous exécutez :Ctl
, et la prochaine correspondance de recherche deviendra name_to_replace
. La commande se place dans le @@
registre pour que vous puissiez répéter l'action en appuyant sur @@
.