その他
    ホーム 技術発信 DoRuby [scala] [vim] vimでSnakeCaseとcamel_caseとを変換する
    [scala] [vim] vimでSnakeCaseとcamel_caseとを変換する
     

    [scala] [vim] vimでSnakeCaseとcamel_caseとを変換する

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    RailsとPlayで同一のDBを参照した環境で開発している場合には、この変換を機械的にできると便利

     本記事の対象者

    ・RailsからもPlayからも同一のDBに対してアクセスするモジュールをvimで開発している。

     RailsとPlayのいずれでも開発しているときの問題点

    • Railsの推奨は、キャメルケース(単語間をアンダーバーで区切る)
    • Playの推奨は、スネークケース(単語間の文字の先頭を大文字にする)

    特にDBのカラム名を扱うとき、Rails側ではキャメルケースで書き、Play側ではスネークケースで書くことになり、双方のコードの編集を行き来しているとキャメルケースとスネークケースとを機械的に変換したくなる。

     対応方法

    vimにはキャメルケースとスネークケースとを機械的に変換するプラグインが存在する。

    その1つのoperator-camelizeというプラグインを導入した。

    なお、当該プラグインのベースとなるこのプラグインも必要。

     設定

    「.vimrc」に

    map <leader>c <plug>(operator-camelize-toggle)
    

    と設定しておくことで、VisualModeで選択した後「\c」でキャメルケースとスネークケースとをトグル変換できる。

    トグル変換が嫌な場合には、以下のように設定するとよい。

    「\c」でキャメルケースへの変換。

    「\C」でスネークケースへの変換。

    map <leader>c <plug>(operator-camelize)
    map <leader>C <plug>(operator-decamelize)