私のキーマップ変更with KeyCtrl and XKeymacs

WindowsXPの日本語キーボードの配列を、KeyCtrlを使って、以下のように変えています(赤文字が変更したキー)。


"CapsLock" → "
#FF0000;">Ctrl" :これは定番。Emacs(またはUnix)使いなら必須。Emacsを使っていない人でも、間違えてCapsLockを押して変なことにならないために必要。
"無変換" → "
#FF0000;">Esc" :viを使うときに便利。今のところ、vi以外でEscを使う機会がないため、この配置はすこしもったいない気もする。
"変換" → "
#FF0000;">Alt" :Emacsを使うときに便利。普通のキーボードの左右のAltは、押すために手の位置をホームポジションからかなり動かす必要があるので、かなり押しづらい。変更後のキー配置だと、Emacsで頻繁に使うM-x(Elisp関数実行)やM-w(コピー)がスムーズに打てる。また、AltはCtrl-Alt-DelやAlt-SPCなどでも利用するので、打ちやすい位置に配置すると何かと便利。


キーの「打ちやすさ」(手をホームポジションからあまり動かさないでも打てること)は実際には、自分の使っているキーボードのキーの物理的な場所に依存する。なので、キーボードが変われば、自分に最適なキーマップも変わるだろう。ただ、標準的な日本語キーボードはキーの物理的な位置もだいたい同じ。だからそこまでキーボードの違いを気にすることはない。


本当は、EnterとBS(バックスペース)も打ちやすい位置に配置したい。候補としては、

Enterを新たに置く位置 BSを新たに置く位置
候補1 ] [
候補2 変換 \(バックスラッシュ)
候補3 無変換 \(バックスラッシュ)


がさしあたり思いつく。ただ、連鎖的なキーマップ変更が起こると、慣れるまで打ち間違いが頻発する。また、元のEnterやBSに別の機能を割り当ても打ち間違い(指が勝手に押しなれたEnterやBSを押してしまう)をするので、それらは元の機能のまま残しておきたい。


あと、矢印キーも押しやすい位置に動かしたい。しかし、流石にこれらを新しく割り当てられそうな空いたキーはないので、これに関しては、EmacsライクなキーバインドWindows上で実現するXKeymacsを利用して、各種移動コマンド(C-n, C-p, C-f, C-b, C-a, C-e)を利用できるようにした。それに伴い、検索(Find)をC-gに、すべて選択(Select All)をC-x hに変更した*1。ついでにC-BSにDeleteを割り当てた。


ホームポジションの手の位置から近くて、かつあまり使わないキー」は少ないので、それらの貴重なキー*2に、どのように新たなキーを配置するか、悩みどころ。

*1:なお、Xkeymacsでもキーマップの変更はできる。KeyCtrlを使っているのは、先にKeyCtrlを使っていたからというだけ。

*2:特に"無変換"や"変換"は狙い目。