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/