2007年8月11日の日記の4番目の記事へのコメント

uim.el 〜function-key-map

uim.elのキーマップ処理にも色々問題が.キーマップ眺めて,ソース眺めて,「あれ,この場合どうすんのが正しいんだ?」とリファレンスを読んで,今までfunction-key-mapの扱い方を微妙に間違えてたことを知りました.

たとえば,Emacs22だと,function-key-map には [M-return] がデフォルトで設定されてて,「(lookup-key function-key-map [M-return])」とやると 「[134217741]」 が返ってきます.なので,Altキーを押しながらEnterを押すと,まず「[134217741]」に変換されて,その上で 「[134217741] 」で global-map とかの探索が行われます.

ただ,デフォルトで 「[134217741]」 にはキーが設定されてないので,Alt+Enterで何もおきません.そこで,たとえば以下のような設定をしてやると,C-eを押したときと同じような動きになります.

(define-key global-map [134217741] `move-end-of-line)

まあ,ここまではいいんですが,ここで,以下のように,global-mapで M-return 自体にもコマンドを設定するとどうなるかといいますと・・・

(define-key global-map [M-return] `move-beginning-of-line)

入力されたキー列は,まず function-key-map で変換されることになるので,結局 「[134217741]」 になって move-end-of-line が実行される・・・と思ってたんですが,実は違いました.global-mapとかに同じキーバインドが設定されている場合は,function-key-map で変換されないそうで.この場合は move-beginning-of-line が走ります.uim.elは,これを知らず,この場合も move-end-of-line を走らせてました(´・ω・`).ああ,直さなきゃこれ・・・でも・・・なんかもう・・・

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

2007年8月11日の日記の4番目の記事へのコメント

中の人情報

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

カレンダー

2007年8月
      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 31  

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ