今日見つけた 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つのキーの同時押し、もしくは単一キーのダブルクリックを 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 にされることがあるので修正 で対応。