13
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

.emacsAdvent Calendar 2015

Day 1

物覚えが悪いから同時に押す

Posted at

この記事はEmacs Advent Calendarではない

Emacsの初期化ファイルのちょっとした工夫を紹介したりする.emacs Advent Calendar 2015です!

key-chordと私

自分のTwitterログを検索してみてもkey-chordについては二度しか言及してないのだけれど、ことし一年で無くてはならない存在になったので紹介したい。

人間がコードを書くための最大の敵は自分自身であり、つまりは不器用な指と物覚えの悪い頭が制約になります。

key-chordは、複数のキーの「同時押し」に機能を割り当てることができます。指がつるような運動をする必要もなく、手軽に機能を起動することができます。

key-chordを入れるには

パッケージリポジトリとしてMELPAを登録すれば、容易に導入可能です。2015年Emacsパッケージ事情をお読みください。ヾ(〃><)ノ゙

key-chordの設定

私は以下のような設定をしてます。

init.el
;; 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-variablefind-functionをkey-chordに割り当てることで、Emacs Lispのコードリーディングが抜群に捗るようになりました。

キーの選びかた

key-chordはその特性上、「同時押し」の判定は厳密ではなく、高速に打鍵すると誤爆するおそれがあります。基本は隣接するキーか、一つ空けた程度の距離を組合せるのが押しやすいですが、連続して押されやすいキーは避けた方が懸命です1。また、キーの組合せは、ある程度は機能と連想できるようにすると忘れにくくなるように感じます。

増やしすぎない

重ねて、筆者は物覚えが悪いので、一気に定義すると覚えられず破綻することは目に見えてました。なので増やしすぎないように自制して、少しづつ増やしてます。

  1. key-chordの利用を初めた当初はpackage-install"pi"に割り当ててましたが、筆者は仕事柄piを連続して打鍵することが多いのでしょっちゅう誤爆してました p(ixi)v

13
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?