窓使いの憂鬱で SKKIME の Sticky Shift を実現する

通俗的な意味で Sticky Shift とは、SKK(や SKKIME)において、変換モードに入るために押しづらいシフトキーに替えて、";"(セミコロン)を使うこと指す*1。単にシフトキーをセミコロンに置き換えるだけではなく、セミコロンを一度押すと、シフトのロックがかかる状態になる。これによって SKK の操作性は格段に向上する。

さて本家 SKK の場合、Sticky Shift は Emacs Lisp で設定できる。では SKKIME はどうやって実現するか。色々な方法があると思うが、ここではキー・カスタマイズ・ソフトの「窓使いの憂鬱」を使った例を紹介する。


key IL-*IC-Semicolon = &EditNextModifier(M0-S-)
key M0-S-Semicolon = ~S-Semicolon

上記のコードを解説する。「窓使いの憂鬱」の基本構文は以下の通り。


key A = B

これで「A を押した際、B が表示される」の意味になる。

一行目は、IME がオンであり (IL)、かつ変換中ではない (*IC) 状態でセミコロン (Semicolon) を押した場合、次のキーに対してシフトキーのモディファイヤ (&EditNextModifier(M0-S-)) を適用する設定。

二行目は、セミコロン自体を入力するための設定。"~"(ティルダ)は、モディファイヤを離す命令。これで ":"(コロン)が表示されてしまうのが防げる。

上記を窓使いの憂鬱の設定ファイル (.mayu) の記載すればよい。



以下の方式よりも、こちらの方がいいような気がする。


ZOETROPEの日記
SKKIMEでsticky-shiftする

*1:厳密に言うと、Sticky Shift は「順次打鍵方式」のことを意味している。つまり、あるキーを「押しながら」他のキーを打つことを、あるキーを「押して離してから」他のキーを打つことで置き換える方式である(Sticky は「ねばっこい」の意味)。したがって、Sticky Shift には本来「シフトキーを他のキーで代用する」という意味はない。詳しくは、ここを参照。