CamelCaseをlowercase_with_underscoresに、またはその逆に変換するvimマクロはありますか?
Tim Popeの abolish.vim
camelCase
、MixedCase
、snake_case
、およびUPPER_CASE
の間で変換でき、変換(1 -way)からdash-case
へ。
カーソルをfooBar
、FooBar
、foo_bar
、またはFOO_BAR
のいずれかに置いて使用します
crc
に変換するにはfooBar
crm
に変換するにはFooBar
cr_
またはcrs
をfoo_bar
に変換しますcru
をFOO_BAR
に変換しますcr-
に変換するには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
私は次のようなコマンドを作成しました:
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
になります。コマンドはそれ自体を@@
レジスタに入れるので、@@
を押してアクションを繰り返すことができます。
lh-dev は、命名スタイル間で変換するコマンドも提供します。
:NameConvert snake
カーソルの下のWordをsnake_caseに変換します。
:%ConvertNames/\<m_\k\+(/getter/gc
ユーザーが変換を確認したと仮定して、パターンの各出現をゲッター名に変換します(:h :s_flags
)
サポートされているスタイルは2種類あります。