[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[cgreek-ja:01036] Re: cgreek のごく些細な挙動不審



高橋です。遅くなりましたが、cgreek-emacs20 での incremental search の
実験をやってみました。

haruichi yabuki writes:

> 疑問.2 ギリシャ語モードでの検索の場合(文書の先頭から), 最初の候補者
>        が見過ごされて, 2番目の候補者が示されることがある.

>        a.今,私の環境で症状を再現させる例を探しました. 以下がその簡単な
>          例です. 

>          次のギリシャ語ファイルがあるとします(以下は
>          cgreek-keybord の対応するラテン文字での表示です).
>          --------------------------
>          .
>          .
>          idiokthsi/a ...........
>          .
>          .
>          .
>          oktw/ ..... =octw/ ......
>          .
>          .
>          .
>          octw/ ..... =oktw/ ......
>          .
>          .
>          ---------------------------
>          ここで, Ctrl + S oktw/ では 上の方の idiokthsi/a でカーソル
>          が止まります. 次に  Ctrl + S と押すと 最初の候補者を飛ばして,
>          下の方の oktw/ へカーソルが移動します.

こちらでも再現しました。

>          b. これは cgreek の仕様かな(?)とも思います.
>             キー入力を Ctrl + S oktw/ ENTER とすると 最初の候補者をき
>             ちんと見付けてくれます.

仕様です。ENTER を打つまでは4文字目が確定しませんから、カーソルは最初
に見付かるoktの上にとどまったままです。

>          c. 後置アクセントが決定しない間は先へ進めないということは理解
>             できますが, 不便に感じることはあります.

その気持ちはわかります。文字が完全に確定する前でも、その時点までで合成
された位置に飛んでいってほしい気がします。つまりwを打った時点で最初のwまで、
w/と打てば最初のw/まで。でもそれをやるためには、Emacs の方を修正するか、
Emacs の isearch と同等の機能を CGreek の方で実装する必要があり、かな
り面倒です。というわけで許して下さい。

>          d. いずれにしても, 後置アクセントをENTER KEYで決定しないで(?)
>             検索を継続すると,
>             何故,最初の候補者を見過ごすことになるのでしょうか?

isearch.el のソースコードを読んでいないので本当の理由はわかりませんが、
oktw/ の次に C-s を打つことによって、確定と再検索が同時に行なわれてい
るのではないでしょうか。つまり oktw/ RET C-s と打った場合と同じことが
起きているのですが、RET と C-s が一瞬にして行なわれるため、あたかも最
初の候補がスキップされたように見えるのだと想像します。

-- 
TAKAHASHI Naoto
ntakahas@xxxxxxxx
http://www.m17n.org/ntakahas/