HASHIMOTO Taiichi
taiic****@cl*****
2005年 2月 5日 (土) 10:15:56 JST
はしもとです. >> あまり,実装としてはよくないと思っているので,次のリリース時には,何もバインド >> されていないようにしようと思っています. > > よろしくお願いします。 > > 漢字入力モードのままで、read only buffer (たとえば mew の一覧表示) に移ると > Command-SPACE で漢字入力をオフにできないのも同じ原因でしょうか? それは,全く別の問題です.というか,仕様です. 通常のアプリケーションでは,キーの入力はOS側で処理され,適当な文字列にし, アプリケーションに文字列が渡されます.アプリケーションは,渡された文字列を 表示するだけです. Emacsの場合,自分でキーイベントを発生させて,自分自身で処理を行います. おかげで高度なショートカットやIMを実装できるのですが,Windows,MacOS,XIM等の 外部のIMを利用して入力を行おうと思った場合,外部のIMとEmacsの間でキーイベント の同期をとらなければなりません. 結果からいうと,read only buffer では,IM にキーを渡していません. なぜなら,IMにキーを渡してしまった場合,Emacsでは入力されていないにも関わらず, IMでは,入力ができたように振る舞ってしまい.アプリケーションとIMの間で,うまく 同期できなくなってしまうためです.本当は,IMでの処理をキャンセルすることができ れば,IMに入力を渡しても良いのですが,どうもそんなAPIは存在しないようです. 他にも,いくつかの場面で,強制的にキーをIMに渡さないようにしています. 例えば,Mewのパスワード入力時とか. しかし,Emacsは,自分でキーイベントを処理することを前提に開発が進められてきた ため,外部のIMを利用すると,入力が非常に困難だったり,期待した動作をしないこ とがよくあります.個人的には,IM は外部で扱う方が良いように思うのですが,OSに よって処理しなければならないことが違うので,統一的なAPIを実現するのは困難なよ うです. しかし,オープンソースなアプリケーションですから,頑張ればそのうちなんとかなる でしょう. - taiichi