2024年6月19日水曜日

Vim でスネークケース→キャメルケース変換

Vim でのスネークケース→キャメルケース変換作業をしたので、今回やった方法をメモ。

  1. 検索で、 /\C_[A-Z] として対象の変数までカーソルを持っていく
  2. どっちのキャメルケースにしたいかによって以下 2 つのどちらかを入力
    • ロウワーキャメル: qqviwuve:s/\v_(.)/\u\1/g<Enter>q
    • アッパーキャメル: qqviwuvUve:s/\v_(.)/\u\1/g<Enter>q
  3. 以降、 n して @q で確認しながら変換していく
  • qq: レジスタ q でマクロを記録開始
  • viwu: 変数が 1 ワードなので、全てをいったん小文字に変換
  • viwu: 変数が 1 ワードなので、全てをいったん小文字に変換
  • vu: アッパーキャメルケースにしたいときに追加、カーソルのある位置の文字を大文字に置換
  • ve: 変数全体をヴィジュアルモードで選択
  • :s/\v_(.)/\u\1/g<Enter>: キャメルケースになるようにアンダースコア直後の文字を大文字に変換
    • \v_(.): 一般的な(?)正規表現で、「アンダースコアと、そのひとつ後ろの文字」をヒットさせる ヒットしたモノの中の、「ひとつ後ろの文字」を、() で括り、置換の際に利用する
    • \u\1 : 検索時に () で括った個所のひとつ目を、大文字に変換して置換
  • q: マクロ記録終了
  • @q: q レジスタに記録したマクロを実行

以上。

参考資料

0 件のコメント:

コメントを投稿