この記事はEmacs Advent Calendarではない
Emacsの初期化ファイルのちょっとした工夫を紹介したりする.emacs Advent Calendar 2015です!
key-chordと私
自分のTwitterログを検索してみてもkey-chordについては二度しか言及してないのだけれど、ことし一年で無くてはならない存在になったので紹介したい。
key-chord.el とか使ったら、かなりお手軽に既存の枠組みから外れられる気がしてるけど、僕はまだ使ってない。
— 獨自腐麗夢輪惡 (@tadsan) January 26, 2013
物覚えが悪いので、最近は key-chord 方面を割り当てる方にシフトしつつある
— 獨自腐麗夢輪惡 (@tadsan) February 8, 2015
人間がコードを書くための最大の敵は自分自身であり、つまりは不器用な指と物覚えの悪い頭が制約になります。
key-chordは、複数のキーの「同時押し」に機能を割り当てることができます。指がつるような運動をする必要もなく、手軽に機能を起動することができます。
key-chordを入れるには
パッケージリポジトリとしてMELPAを登録すれば、容易に導入可能です。2015年Emacsパッケージ事情をお読みください。ヾ(〃><)ノ゙
key-chordの設定
私は以下のような設定をしてます。
;; key-chord
(use-package key-chord
:init
(custom-set-variables
'(key-chord-two-keys-delay 0.02))
(key-chord-mode t)
(key-chord-define-global "df" 'find-function)
(key-chord-define-global "fh" 'describe-function)
(key-chord-define-global "fv" 'find-variable)
(key-chord-define-global "p@" 'package-install)
(key-chord-define-global "kl" 'align-regexp)
(key-chord-define-global "rt" 'toggle-load-theme)
(key-chord-define-global "wr" 'writeroom-mode)
(key-chord-define-global "m," 'reload-major-mode))
find-variable
やfind-function
をkey-chordに割り当てることで、Emacs Lispのコードリーディングが抜群に捗るようになりました。
キーの選びかた
key-chordはその特性上、「同時押し」の判定は厳密ではなく、高速に打鍵すると誤爆するおそれがあります。基本は隣接するキーか、一つ空けた程度の距離を組合せるのが押しやすいですが、連続して押されやすいキーは避けた方が懸命です1。また、キーの組合せは、ある程度は機能と連想できるようにすると忘れにくくなるように感じます。
増やしすぎない
重ねて、筆者は物覚えが悪いので、一気に定義すると覚えられず破綻することは目に見えてました。なので増やしすぎないように自制して、少しづつ増やしてます。