English help on website



setsearch文(Ver9.35対応版)
目次検索系文− setsearch文
setsearch文は、秀丸エディタが内部で保持している検索文字列と検索オプションの内容を設定します。
setsearch "検索文字列", 0x00000003;
パラメータ1(文字列型)
検索文字列を指定します。

パラメータ2(数値型)
searchoption相当の検索オプションを指定します。

パラメータ3(数値型、省略可能)
searchoption2相当の検索オプションを指定します。(V8.00以降)

結果コード
resultは使用しません。


検索文字列と検索オプションは、「上候補」や「下候補」などで参照され、検索が終わった後も保持しています。

例えば、setsearch文で設定してからfinddownを実行すると、searchdownを実行したのと同じ結果が得られます。

setsearchと逆に、検索バッファの内容を参照するには、searchbuffer, searchoption, searchoption2という値を使います。

マクロの中でsearchdown等を使うと、検索文字列と検索オプションの内容が書き換えられてしまいます。
そうすると、次に上候補/下候補コマンドを使った時に予期しない動作をしてしまうことがあります。
そのため、マクロ実行開始時に値を記憶し、マクロが終わるときにsetsearchを使って復元させることができます。
$s = searchbuffer;
#f = searchoption;
#f2 = searchoption2;
…
マクロ本体…
…
setsearch $s, #f, #f2;
endmacro;
「setcompatiblemode 0x20000;」を最初に実行しておくと、上記の保存して復元するのと同じことを簡単にする方法もあります。(V8.20以降)
setcompatiblemode 0x20000;
…
マクロ本体…
…
endmacro;
「検索文字列の強調」を変更する場合は、searchoption相当の値(パラメータ2)の0x00002000を同時にセットしないといけません。
例えば、0x00000000を指定すると、「検索文字列の強調」の状態はONにもOFFにも変更されず、維持されます。
0x00002000(つまり0x00002000 | 0x00000000 | 0x00000000)を指定すると、検索文字列の強調はOFFになります。
0x00003800(つまり0x00002000 | 0x00001000 | 0x00000800)を指定すると、検索文字列の強調はONになります。(検索時,置換時とも変更する場合)
実際に検索文字列の強調をさせるには、hilightfound文で行います。

searchoption2相当の値(パラメータ3)を設定するには、searchoption(パラメータ2)で0x80000000のビットを立てる必要があります。

「選択した範囲」に相当する値はありません。
forceinselectを使って「選択した範囲」の指定をすることができます。

検索文字列には上限があります。上限を超える可能性がある場合は事前に文字数をカウントして判断する必要があります。
参照:検索/置換文字列の上限について