Antworten:
Tim Popes abolish.vim
umwandeln kann unter camelCase
, MixedCase
, snake_case
, und UPPER_CASE
sowie convert (one-way) zu dash-case
.
Positionieren Sie den Cursor auf einem beliebigen fooBar
, FooBar
, foo_bar
, oder FOO_BAR
und Verwendung
crc
zu konvertieren fooBar
crm
zu konvertieren FooBar
cr_
oder crs
zu konvertierenfoo_bar
cru
zu konvertieren FOO_BAR
cr-
zu konvertieren foo-bar
Ja , und als Bonus gibt es einen, der auch in die entgegengesetzte Richtung geht!
Zitat aus dem Wiki für den Fall, dass es weggeht:
" Change selected text from NameLikeThis to name_like_this.
vnoremap ,u :s/\<\@!\([A-Z]\)/\_\l\1/g<CR>gul
und für die entgegengesetzte Richtung:
" 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 bietet auch Befehle zum Konvertieren zwischen Namensstilen:
:NameConvert snake
konvertiert das Wort unter dem Cursor in snake_case.
:%ConvertNames/\<m_\k\+(/getter/gc
konvertiert jedes Vorkommen des Musters in einen Getter-Namen, vorausgesetzt, der Benutzer bestätigt die Transformation ( :h :s_flags
)
Es gibt zwei Arten von unterstützten Stilen:
Ich habe einen Befehl wie diesen erstellt:
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"
Sie müssen zuerst nach einer Zeichenfolge suchen, die Sie ersetzen möchten, /nameToReplace
und dann ausführen :Ctl
, und die nächste Suchübereinstimmung wird name_to_replace
. Der Befehl wird in das @@
Register eingetragen, sodass Sie die Aktion durch Drücken von wiederholen können @@
.