Vim使いもEmacs小指になってしまえ

CopsLock キーを Ctrl にするのは有名だけど、うちで使ってる CapsLock キーの設定。窓使いの憂鬱で設定してる。

# 0. mayu では元々 Eisuu などという名前なので
def alias = Eisuu

# 1. Caps キーを Ctrl として使えるように
mod ctrl += !!Caps

# 2. Caps キーを単独で押すと ESC が送られる
key ~R-*C-Caps = ESC
key R-*C-Caps = &Ignore

0. は別名付けてるだけなので省略。

1. で Caps キーを Ctrl モディファイヤにしてるのだけど、mayu 用語でいうと "One Shot モディファイヤ" にしてある。"SandS" とかで使う、「そのキーを単独で押すとそのキーが送られ、そのキーを下げたまま他のキーも押すと モディファイヤ+他のキー になる」というもの。
上記の設定だと、例えば Caps キーを下げたまま a を押すと Ctrl+a が送られ、Caps キーだけを押す(下げて上げる)と Caps キーが送られる。

2. そんで Ctrl キーなんぞ単独で送られて嬉しいことはひとつもないので、Caps キーを単独で押した場合は ESC を送るようにする。Caps の前に付いてるのは、この設定を有効にする Caps を押した時のモディファイヤの指定で

  • "~R" = キーリピートした時を除いて
  • "-*C" = Ctrl が押されているかは無視して

という意味。
2行目は Caps キーがリピートした(押しっぱなしにした)時は無視する(何もしない)ようにする。これは C-<なにか> を押そうと Caps 押し下げたはいいけど「ん?」とか思ってやっぱりやめた時なんかに、無視しないと ESC が送られてしまって調子悪いから。

これでどうなるかと言うと

  • Caps キーを押したまま他のキーを押すと Ctrl+<他のキー> が送られる
  • Caps キーを普通に押すと ESC が送られる
  • Caps キーを押しっぱなしにすると無視される

なので、xyzzy で M-x するときは Caps 押す > Caps + x でオーケーだし、Vim 使うときは小指をちょこっと伸ばしてトントンすれば Normal mode に戻れる。小指頑張れ。超頑張れ。