2005年9月28日の日記の1番目の記事へのコメント

uim.elのキーマップとマウスとXEmacs

翻弄されまくりです(;´Д`).キーマップのまわりがえらいことになってます.モードラインとか垂直スクロールバーに関しては,「(define-key uim-mode-map [mode-line] nil)」とか「(define-key uim-mode-map [vertical-scroll-bar] nil)」でまとめてデフォルト外すことができることがわかりました.だったらウィンドウ内のクリックも同じようにしろよ(# ゜Д゜)!という気がします・・・.

続いて,メニューバー(あとツールバー)なんですが,これも選ぶとキーイベントと同じ扱いになるんですね.[open-file]なんてエントリ,lookup-keyしても見付からないにゃーと思ったら,[menu-bar files open-file]という3ストローク扱いで検索しなきゃならんのね・・・.なのに,(this-command-keys)で1個ずつバラバラに読み出されるのはなぜですか(;´Д`).こっちはかなり悩まされましたが,「menu-bar」と「tool-bar」を同様にnilでdefine-keyしてやったら無視されるようになりました.辛い・・・.でも,まあこれで大体GNU EmacsはOKのはず.あ,「switch-frame」も引っかかるのか(;´Д`).

さて,次はXEmacsなんですが,あれ?define-keyでnilにしても,set-keymap-default-bindingで定義したキーバインドが効いちゃいますよ・・・?・・・XEmacsではキーバインドのnilとデフォルトの扱いが違うのかorz.というわけで,マウスイベントとかをnil定義して,デフォルトのキーバインドを無視させるという技が使えません.どうしよう,困ったな・・・.

とりあえずマニュアル読んでみると,イベントの扱いがGNU Emacsとずいぶん違う感じです.この辺はXEmacsの方が人に優しいのか,な?特にマウスイベントが,結構違う感じ.色々実験してみると,どうもGNU Emacsと違ってXEmacsだとマウスイベントもキーイベントと同じように関数から呼び出してうまいこと処理できるっぽいです.というわけで,大変美しくないですが,XEmacsの方は無理にuim-mode-mapからマウス関係の処理を外さずに,代わりにuim.elが内部で処理するようにしました.あー,未定義なキー操作時に(undefined)呼ぶだけじゃエラーになってくれないのがこれまた憎い(;´Д`).

お名前:  メールアドレス(省略可):
メールアドレスも表示されます
ここに名前その他を書いてはいけません: ここにメールアドレスその他を書いてはいけません:

2005年9月28日の日記の1番目の記事へのコメント

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2005年9月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ