それわかるぅ〜

日々「それわかるぅ〜」と思ったこと、忘れたくないことを徒然なるままに。Inputした情報を定着させるためのOutputの場として使用しています。誤字脱字等はたぶん仕様です。

emacsとAtomのキーバインドを自分好みにカスタマイズする

f:id:emeraldwar:20160105082805p:plain:w600

emacsAtomのキーバインディングを自分用に割り当てる方法です. emacsのショートカットキーでコードの整形を行うC-M-\ってのが有りますけど、Macだとなぜかコマンドでバックスラッシュが入れられなくて困ってた. というわけで、これを書き換えます.

現在のキーバインディングを確認する.

これはM-x describe-bindingsで一覧が出る。
一覧の中にC-M-\ indent-regionとあるはずです.
ちなみに検索はC-sでバッファに検索したい文字を入力して、C-sをどんどん押していけば次の該当箇所に飛んでいきます.

設定ファイルに書き込み.

ではemacsの設定ファイル(~/.emacs.d/init.elとか)を開いて、次の記述を追加します.

(define-key global-map [(C c) (C i)] 'indent-region)

適当にC-c C-iを割り当てました. 理由はただ単にemacsのweb-modeのキーバインディングと揃えたかったからというだけです. global-mapというのは、キーバインディングが適用される範囲を指定するものです. 今回のコマンドは基本的に全ての場面で使えるようにしたいのでこう指定します. 必要に応じて変更してください.

以上でemacs設定は完了ですが、念のためキーバインドのバッティングが無いか一覧から確認しておきましょう.

Atomも!!

最近Atomを使う機会が多いのでこちらにコード整形のコマンドを追加します. 設定は~/.atom/keymap.cson

'.editor:not(.mini)':
  'ctrl-c ctrl-i': 'editor:auto-indent'

と追加します. デフォルトではコード整形のコマンドはキーバインディングが割り当てられてないみたいです. なお、この書き方は設定のkeybindingsの画面を開いて、その一覧左端のコピーを押すと、そのまま上記のCSON形式でクリップボードにコピーが行われます.