Etsushi Kato
ekato****@ees*****
2005年 1月 29日 (土) 11:36:18 JST
こんにちは、加藤です。 ぼくとしては、それぞれの IM (*.scm) のキー設定やコード はこれまでのまま変更せずに、uim-pref 内部での表示と、その個人設定への 反映において差異を吸収することを考えていたので、ちょっと話が食い違って いるのかもしれません。 一応コメントです。 On Sat, Jan 29, 2005 at 05:40:58AM +0900, YamaKen <yamak****@bp*****> wrote: > At Fri, 28 Jan 2005 18:11:14 +0900, > ekato****@ees***** wrote: > > > > On Fri, Jan 28, 2005 at 11:58:42AM +0900, > > YamaKen <yamak****@bp*****> wrote: > > > > > ・アルファベットキーはuim-pref上では常に大文字で表す > > > ・アルファベットキーに対する<Shift>の暗黙無視を行わない > > > ・アルファベットキーに対しては大文字・小文字を無視する > > > SKK 的にはかなり気持悪く感じます。特にアスキーモードに移行する l が。 > > <Shift>L もちょっといやですね。 > > > > ぼくだったら、uim-pref 上の表示として > > > > o アルファベットキーのみでは、case を区別する。 > > o modifier 付きのキーでは case を区別せず小文字で表記する (<Control>j > > のように) > > > > とするかもしれません。 > > ちょっと考えてみたんですが、ルールが複雑になりすぎると思います。 > > Caps Lockがonの状態では"l"を入力しようとするとShiftを押す事にな > るため、"<Shift>l"として渡ってきます。このため、1つの表現でCaps > Lock on/offの両方に対応しようとすると、caseの区別に加えて<Shift> > の無視を暗黙に行う必要があります。 そうです。shift mask については他の modifier mask が無くアルファベット キーのみのときは、その mask を無視して、アルファベットの case を区別す るということを意図していました。 つまり、"l" が欲しいのであれば、caps lock 無してあれば、l キーを押して uim-pref 上に "l" を得る、caps lock 有りであれば、shift キー と l キー を押して、uim-pref 上に "l" を得る。 > 一方、このルール上で"J"に加えて<Control>が押されている事を検出し > ようとすると"<Control><Shift>j"と表現される事になります。この場 > 合は"J"の場合とは逆にcaseが無視され、さらにユーザが目にする表現 > に<Shift>が加わります。 そうですか? これまでの uim の挙動として、modifier が有る場合には caps lock があっ てもなくても同様に機能するように <Control>j と <Control>J は区別しない よう両方とも同じ意味として *.scm に設定してありますよね。 そうであれば、"J" + <Control> というのは、"j" + "<Control>" でもいいわ けで、uim-pref 上で "<Control>j" という表記でかまわないと思います。 意味的にも、ユーザとしては、caps lock 有っても無くても、Control キーと j キーの組み合わせを意図しているわけですから、表示と食い違いはありませ ん。 この場合に、 「shift を押す」というのは、shift mask を付けるという意味 ですから、caps lock が有っても無くても (アルファベットの case を無視し て)、<Control><shift>j という別の意味のキー設定になり、uim-pref 上に "<Control><shift>j" と表示されて問題ありません。 > <Control>を加えただけでこのような表現の変化が生じると、一貫性の > 無さによりユーザの理解を妨げる事になると思います。 ちょっと良くわかりませんでした。 > 上記の"l"の例はskkでは起こり得ないシチュエーションですが、anthy > でskk風モード遷移を使っている場合にはCaps Lockしたまま操作する場 > 合に発生します。 確かにこの場合は (アルファベットキーのみで case を無視した挙動が欲し い場合)、l の case を区別すると問題になりますね。ユーザに明示的に、"L" も追加してもらうという方法になるでしょうか。 > 一方で加藤さんの言う気持悪さというのも理解できるので、以下のよう > な妥協案はどうでしょうか。 > > ・アルファベットキーはuim-pref上では常に *小文字* で表す > ・アルファベットキーに対する<Shift>の暗黙無視を行わない > ・アルファベットキーに対しては大文字・小文字を無視する > > 要は最初の案の「常に大文字」を「常に小文字」に変えただけです。 > 違和感は減ると思いますがどうでしょうか。 > > "L" → "<Shift>l" > "l" → "l" > <Control>j,<Control>J → <Control>j > <Shift>space → <Shift>space 小文字であれば大丈夫です。 -- Etsushi Kato ekato****@ees*****