2006年1月4日の日記の2番目の記事へのコメント

uim.el

とりあえずsvnアクセス権キタ━━━━(゜∀゜)━━━━ッ!! ひと月ですか.中の人相当多忙なんですなぁ・・・.とりあえずtrunkがcheckoutできました.(゜Д゜)ウマー.ていうか今commitしていいのかな?

そいや,DebianのMLでuim.elに関して質問が出ているようなのですが,自分DebianのMLに入ってないんでどうしよう・・・うはw,とりあえずこのキモい長文にリンク張られとる・・・.この文章は参考にしない方がよいかと・・・.翌日には仕様変わってますし(^^;;;

で,ぐだぐだ実験してみたら,たまたまわかりました.おそらく「(require 'uim)」より後に「(global-set-key "\C-h" 'delete-backward-char)」とか書いているのが直接の原因な気がします.

えーと,uim.elは基本的にあらゆるキー入力を横取りします.が,一部横取りしてしまうとまずい(uim.elがあたかもキー横取りしなかったかのようにコマンドを後から実行できない)コマンドに関しては,最初から横取りしないようにキーマップに穴を空けます.で,そういうコマンドのひとつに「help-command」があります(厳密にはこれコマンドじゃないんですが).

で,問題は穴を空けるところにありまして,実際には穴を空けるのではなく,下地をコピーして穴が空いたように見せかけてます(要するにuim.elのキーマップに,その時点でのglobal-mapとかのキーバインドをコピーしている).だもんで,uim.elのキーマップ初期化時に「help-commandが割り当てられてるキーバインド」を全部拾い出して穴を空けると,その後uim.elのキーマップを直接いじらないかぎりそのuim.elは初期化時の下地を覚えたままになります.

なので,"uim.elが初期化される時点でC-hにhelp-commandがバインドされたままの状態"だと,uim.elが「C-hはhelp-command」と覚えたままの状態となり,その後で「(global-set-key "\C-h" 'delete-backward-char)」とやってもuim.elの覚えているhelp-commandが優先されてしまい・・・というわけなんですねー.

というわけで,どう見てもuim.elの問題です.本当にありがとうございました.・・・ってどうやって直せばいいんだこれー.global-set-keyにadviceですか?やだなぁ(;´Д`).あ・・・下地をコピーせずに単に穴空けりゃいいのか?その場合,プリエディットが無いときにC-hがuimに渡せなくなるけど・・・現状よりはマシか・・・.あーでもこれXEmacsだとできないんだよなー確か.うー.

[コメントを書く]

nosuke 2006/01/05(木) 07:51:45
あ,そういえばこれをどうにかするためにuim-reset-keymapを用意したんだった
ような気も・・・
denson 2006/01/06(金) 07:44:01
Debian-ML 投稿者です。御教示ありがとうございました。が、別信にてご報告したとおり、小生の ~/.emacs では
(global-set-key "\C-h" 'delete-backward-char)

(require 'uim)
よりも先に設定されてるんですよね...
とおりすがり 2006/01/06(金) 18:06:19
Emacsに詳しくありませんけど、Debianならemacsen-startupで
(require 'uim-leim)
されているので、通常では
(require 'uim) ;; /etc/emacs/site-start.d/50uim-el.el

(global-set-key "\C-h" 'delete-backward-char) ;; ~/.emacs
の順番になるんじゃないでしょうか?
nosuke 2006/01/07(土) 00:19:34
どもです.不慣れなDebianですが,apt-getでuim-1.0.0入れてみたところ,
.emacs内で最初にglobal-set-keyでC-hをつぶしても現象が発生することが
確認できました.

とおりすがりさんのおっしゃる通りで,.emacsに何も書かなくても
uim-leim が読み込まれているようです.
Debianスゴス.
そしてそこにuim-elを突っ込んでくださったomoteさんスゴス(*´Д`)

・・・んで,対処法なんですが,ひとまず.emacsに
(uim-reset-keymap)
と書いておくと,その時点でのglobal-mapを元にしてキーマップに
穴を開け直してくれるので,C-hがdelete-backward-charになって
くれます.
#何かかっこわるい方法ですが・・・
ひとまずこちらを試してみていただけますでしょうか.
denson 2006/01/07(土) 07:37:02
御教示ありがとうございました。
おかげさまで C-h が効くようになりました!!
ヤマケン 2006/01/07(土) 12:01:54
new コミッタソ (;´Д`)ハァハァ
uim/とかscm/以下で派手にちゃぶ台ひっくり返したりしない限り大丈夫っす。
ガンガンcommitしちゃってください。
nosuke 2006/01/08(日) 05:32:55
>densonさん
おおよかったよかった
>ヤマケンさん
>>new コミッタソ
響きにワロタw
了解です.ありがとうございます.

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

2006年1月4日の日記の2番目の記事へのコメント

中の人情報

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

カレンダー

2006年1月
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件のコメント

過去ログ