Tuesday, December 30, 2014

Emacs でワードをキャメルケース、スネークケース、スパイナルケースに変換するマイナーモード

とある案件対策用のマイナーモード。

当方も年に一回使うか使わないかのため、誰得感満載ですが。

https://github.com/chiyano/extra-letter-cases.el/blob/master/extra-letter-cases.el

camelize, snakify, spinalize 関数を定義し、 それらをラップして camelize-word, snakify-word, spinalize-word といったインタラクティブな関数を提供します。

当方 el-get を愛用しているため以下 el-get による導入方法です。

init.el に以下を記述して eval または Emacs 再起動など。

(setq el-get-sources
      '((:name extra-letter-cases
               :type git
               :url "https://github.com/chiyano/extra-letter-cases.el.git"
               :after (add-hook 'prog-mode-hook 'extra-letter-cases-minor-mode))))

あとは M-x el-get-install extra-letter-cases で導入できます。 詳しくは el-get のほうを参照いただきたく。

上の設定では prog-mode-hook でフックしているため、 なんらかのソースコードファイルを開くと extra-letter-cases-minor-mode が有効になります。 画面下部のインジケータに excases と表示されるはず。

キーバインドはそれぞれ

  • M-p - camelize-word :カーソル位置の文字列をキャメルケースに置き換え
  • M-[ - snakify-word :スネークケースに置き換え
  • M-{ - spinalize-word :スパイナルケースに

これらを M-uM-lM-c などと連携で使用します。

しかし、せっかく調べた word-at-point や Syntax Table は使わずじまい。

そしてやはり誰得感満載。