Emacsでは, たとえばC-c C-jにコマンドが割り当たっているとすると, C-cまで打った時点では入力待ちになる. 慣れてくるとC-c C-jは素早く打てて, C-cを押して次が何のキーだったか迷うようなことはなくなってくるので, C-cを押してしばらく(0.5秒とか)経った場合は続けて別のキーを入力するつもりはないものとして扱って, C-c単体に別のコマンドを割り当てられるようにしてもよいのではないか.
もっと深刻な話としては, たとえばESC xというキー列はM-xと同等に解釈されてしまうので, ESCそのものにコマンドを割り当てることはできない. もしもM-xはAlt+xでしか打たないというのであれば, M-xのときにはESCとxが同時に入力されるはずなので, ESCの入力があってからほんの少しでも(0.01秒とか)入力待ちになったら, それはESC単体の入力とみなしても問題はなさそうなもの. 実際, ViperやVimpulse, Evilなどでは, この発想でESCとM-x等の両方に別々のコマンドを割り当てている. 今回は, これをESCだけでなく一般のキーに対してできるようにしたという話.
続きを読む