[Anthy-dev 575] Re: uimのキーバインド定義を簡単に

Back to archive index

TOKUNAGA Hiroyuki tkng****@xem*****
2004年 2月 20日 (金) 04:42:33 JST


On Wed, 18 Feb 2004 09:17:53 +0900
YamaKen <yamak****@bp*****> wrote:

> キーバインドの定義ですが、数日前から"<Control>a"のようなGtk風表
> 記と"C-a"のようなEmacs風の両方を受け付けるようにしてあります。各
> 人テストして頂けるとありがたいです。

 まだちょっと時間が無いのでテストはしてませんけれど。私としてはこの仕様
に不満はありません。

> ユーザに対してはやっぱり<IgnoreCase>のような生の仕組が見えている
> のは混乱の元なので、生の仕組に触れる make-key-predicate の他に以
> 下のようにユーザレベルで使うための関数を別に用意するといいんでは
> ないかと思いました。
> 
> (define-key generic-go-left-key? "C-b")  ;内部で<IgnoreCase>追加

 単なる確認なのですが、デフォルト(define-keyを使って定義した場合)では
Case Insensitiveであるということですよね?

 それと、define-keyを定義するのはuimではちょっと難しい気がします。私の
Schemeの細かい部分に関する知識や用語はかなり怪しいのですが、この
define-keyはdefine-keyが呼ばれた環境(通常はトップレベルの環境だと思いま
す)で変数generic-go-left-key?に対して目的の関数を生成して束縛しておかな
いといけないですよね?

 define-keyの内部でdefineを呼んでも、define-keyの外部に出てしまうと参照
できなくなってしまうので、このdefine-keyは関数でなくマクロで実装すると良
いと思うのですが、残念なことにuimのschemeインタプリタにはdefine-macroが
ありません。
 マクロを使わずに呼び出した側の環境(もしくはトップレベルの環境)に変数
を束縛する方法ってあるんでしょうか?


-- 
徳永拓之
tkng****@xem*****
http://kodou.net/



Anthy-dev メーリングリストの案内
Back to archive index