[migemo] Re: migemo 利用時の isearch 以外の lazy-highlight の挙動

Hideyuki SHIRAI ( 白井秀行 ) shirai at meadowy.org
Fri Aug 5 18:29:41 JST 2005


From: "M.Fujii" <boochang at m4.kcn.ne.jp> さん曰く
Subject: [migemo] migemo 利用時の isearch 以外の lazy-highlight の挙動
Message-ID: <20050731.115225.262176086.boochang at m4.kcn.ne.jp>
Date: Sun, 31 Jul 2005 11:52:25 +0900 (JST)

> [case 1]
> 1. emacs (CVS HEAD)を起動し migemo を有効にする。
> 2. migemo が有効な状態で isearch を行なう。
> 3. M-x query-replace を実行し、置換する文字列を指定する。
>    (ここで複数の文字列が置換されるようにすることがポイント)
> 4. ここで、置換の対象となる部分がハイライトされるはずだが、
>    ハイライトされない。
>    (大抵その代わりに migemo で検索した文字列がハイライトされる)

これは気付いていませんでした。うーむ。

> [case 2]
> 1. emacs (CVS HEAD)を起動し migemo を有効にする。
> 2. このメールに添付したサンプルファイルを hexl-mode で開く。
> 3. isearch で "fg" で検索すると、"f" の直後で改行している箇所がハイライ
>    トされない。
>    (migemo をロードせずに起動した場合と比較すれば一目瞭然だと思います)

もっと強烈なので、『info で iseach するとエラーになる』というの
もあります。これは困っちゃったので、手元では無理やり動くようにし
ましたが。。。

> CVS HEAD では isearch-search-fun-function によって、isearch が呼び出す
> 検索関数を差し替えることが可能になっています。migemo は
> isearch-lazy-highlight-search をまるごと差し替えているので、この機構が
> 利用されていない状態になっているので、これが問題の原因だと思います。

isearch-lazy-highlight-search に関してはその通りなのですが、、、

> また、isearch-search-fun-function が設定されているときには、その設定に
> よっては migemo を無効にした方が良いのかもしれません。

hexl はそれでも良いと思うのですが、この対処だと info で migemo
な isearch が出来なくて寂しいのですよねぇ。。。また、以前調べた
ときは、isearch-search-fun-function を設定しているのは hexl と
info だけだったのですが、これから増えるかもしれないし。。。

現在、migemo な isearch をするときは、search-forward(),
search-backward() の挙動を migemo-do-isearch の値によって変えて
いますが、このあたりの「やり方」を変えて、半恒久的な対策をした方
が良いと思っているのですが、まだうまい考えにはたどり着いていませ
ん ^^;;;

-- 
白井秀行 (mailto:shirai at meadowy.org)


Migemo メーリングリストの案内