Respuestas:
De Tim Papa abolish.vim
puede convertir entre camelCase
, MixedCase
, snake_case
y UPPER_CASE
, así como convertir (unidireccional) a dash-case
.
Coloque el cursor sobre cualquiera de fooBar
, FooBar
, foo_bar
, o FOO_BAR
y el uso
crc
para convertir a fooBar
crm
para convertir a FooBar
cr_
o crs
para convertir afoo_bar
cru
para convertir a FOO_BAR
cr-
para convertir a foo-bar
Sí, sí , y como beneficio adicional, ¡también hay uno para ir en la dirección opuesta!
Cita de la wiki en caso de que desaparezca:
" Change selected text from NameLikeThis to name_like_this.
vnoremap ,u :s/\<\@!\([A-Z]\)/\_\l\1/g<CR>gul
y para la dirección opuesta:
" 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 también proporciona comandos para convertir entre estilos de nombres:
:NameConvert snake
convertirá la palabra debajo del cursor a snake_case.
:%ConvertNames/\<m_\k\+(/getter/gc
convertirá cada aparición del patrón en un nombre getter, suponiendo que el usuario confirme la transformación ( :h :s_flags
)
Los estilos admitidos son de dos tipos:
Creé un comando como este:
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"
Primero debe buscar una cadena que desea reemplazar /nameToReplace
y luego ejecuta :Ctl
, y la próxima coincidencia de búsqueda se convertirá name_to_replace
. El comando se coloca en el @@
registro para que pueda repetir la acción presionando @@
.