今日見つけた emacs lisp 2本

accelerate.el

1つ目は、 EmacsWiki: accelerate.el

previous-line等がバインドされたキーを押し続けることで、移動量が加速していくlisp
↓のように移動量のリストを渡すことで、徐々に加速することもできる。

(accelerate previous-line '(1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 3))

しかし、何故か backward-char と forward-char は対応していないらしい。

吾輩の設定はこんな感じ。

(require 'accelerate)

(accelerate previous-line '(1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 3 3))
(accelerate next-line '(1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 3 3))
(accelerate smooth-scroll-down '(1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 3 3))
(accelerate smooth-scroll-up '(1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 3 3))
(accelerate dired-previous-line '(1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 3 3))
(accelerate dired-next-line '(1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 3 3))
key-chord.el

2つ目は、EmacsWiki: key-chord.el

2つのキーの同時押し、もしくは単一キーのダブルクリックを define-key として使用できる lisp
下の例だと、hとjの同時押しで undoコマンドが発動する。

(key-chord-define-global "hj"     'undo)

anythingを使い始めてからというもの、バインドするキーが不足気味だったので積極的に使おうと思う。

キーディレイのデフォルト値は1.0だが、これだと普通に打っているだけでかなり誤射してしまう。
0.1〜0.5辺りの数値で試行錯誤している。


モードが勝手にクリアされることがあった。
 →key-chord.el の input-method-function が勝手に nil にされることがあるので修正 で対応。