searchdown2の動作につきましてNo.29276
susan さん 10/12/11 14:27
 
お世話になります。
次ような「選択中文字列を正規表現で検索する」という意図でマクロを作成しまして、

if (selecting) { copy; }
beginclipboardread;
$str = getclipboard;
searchdown2 $str, regular, hilight;

例えば次のような文字列を対象として検索をかけます。

AAA|BBB
AAA|DDD

すると、最初の AAA や BBB をダブルクリックで選択後、マクロを動作させると、ヒ
ットした全ての文字列がハイライトされ、「最初に選択していた文字列が点滅」し所
望の動作になります。
しかし、正規表現を使用すべく AAA|BBB を選択しようとすると、これはダブルクリ
ックでは出来ないので、マウスの左ボタンを押しながら範囲選択するのですが、
このとき、右から左へと選択する場合には、全ての AAA、BBB がハイライトされ、最
初の AAA が点滅して所望の動作になるのですが、
逆に、左から右へと選択すると、AAA、BBB がハイライトされるのは変わらないので
すが、最初の AAA が点滅せず、二番目の AAA が点滅してしまいます。
本来最初の AAA が点滅すべき(してほしい)と思うのですが、いかがでしょうか。
そのような方法があるでしょうか。
よろしくお願いします。

[ ]
RE:29276 searchdown2の動作につきましてNo.29277
Iranoan さん 10/12/11 15:06
 
 susan さん今日は、一ユーザの Iranoan です。
> if (selecting) { copy; }
<snip>
> 逆に、左から右へと選択すると、AAA、BBB がハイライトされるのは変わらないので
> すが、最初の AAA が点滅せず、二番目の AAA が点滅してしまいます。
> 本来最初の AAA が点滅すべき(してほしい)と思うのですが、いかがでしょうか。
> そのような方法があるでしょうか。
 この場合、最初の copy の時点で、カーソル位置が BBB のつぎに来ている
ので、このような動作になります。
 copy2 を使ってはどうでしょう。

[ ]
RE:29276 searchdown2の動作につきましてNo.29278
K'zawa さん 10/12/11 17:53
 
susanさん、こんにちは。
K'zawaです。

if (selecting) {
    copy;
    moveto seltopx, seltopy;
}
beginclipboardread;
$str = getclipboard;
searchdown2 $str, regular, hilight;

[ ]
RE:29278 searchdown2の動作につきましてNo.29279
susan さん 10/12/11 18:11
 
ご指摘の
>    moveto seltopx, seltopy;
を入れたところ、所望の動作になりました。
ワンダフルです。ありがとうございました。

[ ]
RE:29277 searchdown2の動作につきましてNo.29280
susan さん 10/12/11 18:14
 
copy2 ではよりおかしくなるようです。
K'zawa さんの方法で解決しました。
ありがとうございました。

[ ]