回答:
ティム教皇のabolish.vim缶の中で変換camelCase、MixedCase、snake_case、およびUPPER_CASE、同様に変換(片道)dash-case。
いずれかにカーソルを置きfooBar、FooBar、foo_bar、またはFOO_BARと使用
crc 変換する fooBarcrm 変換する FooBarcr_またはcrsに変換するfoo_barcru 変換する FOO_BARcr- 変換する foo-barはい、あります。ボーナスとして、反対方向に進むものもあります。
ウィキが消えた場合の引用:
" Change selected text from NameLikeThis to name_like_this.
vnoremap ,u :s/\<\@!\([A-Z]\)/\_\l\1/g<CR>gul
反対方向の場合:
" 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は、命名スタイル間で変換するコマンドも提供します。
:NameConvert snake
カーソルの下の単語をsnake_caseに変換します。
:%ConvertNames/\<m_\k\+(/getter/gc
ユーザーが変換を確認すると仮定して、パターンの各出現をゲッター名に変換します(:h :s_flags)
サポートされるスタイルは次の2種類です。
私はこのようなコマンドを作成しました:
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"
最初に置き換える文字列を検索する必要があります。/nameToReplace次に実行する:Ctlと、次の検索一致になりname_to_replaceます。コマンドはそれ自体を@@レジスターに入れるので、を押してアクションを繰り返すことができます@@。