窓使いの憂鬱でデフォルトをEmacsバインドにする方法
default.mayuを使うより、1から書く方が早いかもしれん。「keymap Global : EmacsEdit」とかにもしたいし。 ま、これでとりあえず満足。
いちいちEmacsバインドにしたいウィンドウを指定するのが激しく面倒になってきたので、デフォルトをEmacsバインドにして、例外だけ除くようにしてみた。
これでいちいち「window FooBar /RegExpOfWindow/ : EmacsEdit」とか書かなくても良く、Emacsバインドにしたくないやつだけ「window FooBar /RegExpOfWindow/ : KeymapDefault」と書けば済むようになった。
※注意※
さっき書いたばっかなので、今後1ヶ月ぐらいの間チマチマと書き直され続けると思います。
# -*- coding: sjis-dos -*- include "109.mayu" keyseq $WindowClose = A-F4 keymap Global if ( HHK ) mod alt -= LeftAlt mod alt += 半角/全角 key *半角/全角 = *LeftAlt mod Windows -= LeftWindows mod Windows += LeftAlt key *LeftAlt = *LeftWindows else mod control -= LControl mod control += 英数 key *英数 = *LControl key *Esc = *半角/全角 key *半角/全角 = *Esc endif key *IC-C-Yen = $ToggleIME # IME ON/OFF をするキーの指定 key C-A-T = &WindowToggleTopMost # 最前面トグル key C-A-H = &WindowSetAlpha(70) # ウィンドウの半透明化 keymap KeymapDefault = &Default if ( HHK ) mod alt -= LeftAlt mod alt += 半角/全角 key *半角/全角 = *LeftAlt mod Windows -= LeftWindows mod Windows += LeftAlt key *LeftAlt = *LeftWindows else mod control -= LControl mod control += 英数 key *英数 = *LControl key *Esc = *半角/全角 key *半角/全角 = *Esc endif key *IC-C-Yen = $ToggleIME # IME ON/OFF をするキーの指定 key C-A-T = &WindowToggleTopMost # 最前面トグル key C-A-H = &WindowSetAlpha(70) # ウィンドウの半透明化 include "emacsedit.mayu" keymap2 EmacsGlobalC-X : EmacsC-X key C-S = C-S # 上書き保存(S) key C-W = LAlt F A # 名前を付けて保存(A)... key C-F = C-O # 開く(O)... key K = C-N # 新規作成(N) key C-C = $WindowClose # 終了(X) # key C-C = A-Q # 終了(X) # key C-C = LAlt F X # 終了(X) window EmacsGlobal ( // || // ) : EmacsEdit key C-X = &Prefix(EmacsGlobalC-X) window EmacsNative /:(MEADOW|ckWindowClass)$/ : KeymapDefault
- とりあえずdefault.mayuを読み込むのをやめた。
- どうやら既に定義されているキーマップの親キーマップの書き換え「keymap Global : EmacsEdit」はできないらしい。
- そもそも「ネイティブにEmacsバインドに対応しているアプリケーションではEmacsEditを割り当てたくないけど、キー配置だけは入れ換えたかった」のだけど。(↓に続く)
- 多重継承「keymap EmacsGlobal : KeymapDefault, EmacsEdit」みたいなことができなかったので、GlobalとKeymapDefaultの両方にキーの設定を入れた。(外部ファイルにしたら楽ジャン?と思ってやってみたけど、キーマップ毎に適用させることができなかった)
- EmacsGlobalC-Xの設定をもうちょっと充実させたい