searchdownとsearchdown2No.29320
uchino さん 10/12/24 00:53
 
お世話になっております。

カーソル位置から検索を行うためにはsearchdown2を使えば良い、というのは理解し
ているのですが、素朴な疑問として、ではsearchdownのほうは、どのような仕様で、
どのような目的で使うものなのでしょうか。

ヘルプによれば、「〜searchdown2文は、カーソル位置から検索を開始するバージョ
ンです」とあります。
一方、searchdownなどのヘルプトピックには、開始位置について記載がありません。
searchdownのほうは、どこから開始するのでしょう。普通に考えると、カーソル位置
でないなら「現在の行から」あるいは「次の行」が自然な気がするのですが、

moveto 2, 0;
searchdown "[0-9]", regular;

上記のマクロを、以下の状態で実行すると、

12345
67890

「6」ではなく「4」が選択されます。

結果だけ見れば、
●searchdownは「カーソル位置の1つ右」から検索を開始する
という仕様に見えます。

上記は正しいでしょうか。
その場合、どうも仕様自体が少々不自然に思えてしまったのですが、これが必要な
ケースがあるのでしょうか。

純粋に素朴な疑問に過ぎませんが、よろしくお願いいたします。

[ ]
RE:29320 searchdownとsearchdown2No.29321
秀丸担当 さん 10/12/24 09:20
 

>カーソル位置から検索を行うためにはsearchdown2を使えば良い、というのは理解し
>ているのですが、素朴な疑問として、ではsearchdownのほうは、どのような仕様で、
>どのような目的で使うものなのでしょうか。

searchdownのほうは、おっしゃる通りカーソル位置の次の文字から検索する動作
でした。
ヘルプは説明不足でした。ご指摘ありがとうございます。
ヘルプのsearchdownのほうにも説明を追記させていただきます。

標準の設定の場合、通常の検索コマンドによる検索ダイアログボックスから検索
したときもカーソル位置の次の文字から検索していて、searchdownもそれと同じ
になっていました。
([その他]→[動作環境]→[検索]の「カーソル位置の次の文字から検索を開始」
でコマンドによる検索の動作を変更できます)

目的としては、現在の場所ではない次の場所へヒットさせるためということにな
ると思います。

例えば、ある単語にカーソルを置いて、Ctrl+Fで検索ダイアログを出すと、検索
文字列が自動的に取得されます。そしてEnterで下候補すると、次の場所へヒッ
トしたいですが、searchdown2の動作だと、現在の場所そのままになると思いま
す。

または、検索を連続して行う場合どちらも文でも次のヒット位置へ移動しますが、
連続する操作に別の操作が入っる場合、カーソル位置から開始すると同じ場所に
何回もヒットすることになることがあるため、使い分けができるように2つの動
作が用意されています。

[ ]
RE:29321 searchdownとsearchdown2No.29358
uchino さん 10/12/30 15:20
 
ご丁寧なご説明をいただき、痛み入ります。
なるほど、すっきり納得できました。
ありがとうございました。

[ ]