English help on website



searchdialog,searchup,searchdown文(Ver9.00対応版)
目次検索系文− searchdialog,searchup,searchdown文
searchdialog, searchup, searchdownはダイアログボックスで指定するパラメータを同時に指定するようになっています。パラメータは以下のようにコンマで区切って必要なものを指定してください。
searchdialog 検索文字列 [,word] [,casesense | nocasesense] [,regular | noregular] [,fuzzy] [,inselect] [,inselect2] [,linknext] [, hilight | nohilight] [,incolormarker]
searchdown 検索文字列 [,word] [,casesense | nocasesense] [,regular | noregular] [,fuzzy] [,inselect] [,inselect2] [,linknext] [, hilight | nohilight] [,incolormarker]
searchup 検索文字列 [,word] [,casesense | nocasesense] [,regular | noregular] [,fuzzy] [,inselect] [,inselect2] [,linknext] [, hilight | nohilight] [,incolormarker]
word
wordを指定すると、単語検索になります。

casesense, nocasesense
casesenseは大文字/小文字の区別をするという意味です。
nocasesenseは大文字/小文字の区別をしません。
casesenseとnocasesenseのいずれも指定しない場合は、正規表現(regular)の指定があるときは自動的にcasesenseの指定になり、正規表現の指定がないときは自動的にnocasesenseの指定になります。

regular, noregular
regularを付けると正規表現で検索します。
正規表現の書き方は、「\」を書く場合はマクロの文字列の書き方にあるように二重になるので注意が必要です。
例えば、検索ダイアログの正規表現でのタブ文字の検索は「\t」と書きますが、マクロのregular付きでは「"\\t"」と書きます。
「\」そのものは検索ダイアログでは「\\」と書きますが、マクロのregular付きでは「"\\\\"」と書きます。または@""を使った文字列の書き方にすると書きやすいです。
regularを付けて、casesenseとnocasesenseのいずれも指定しない場合は、自動的にcasesense相当(大文字/小文字の区別をする)になります。

noregularを付けると正規表現でない通常の検索をします。
noregularを付けて、casesenseとnocasesenseのいずれも指定しない場合は、自動的にnocasesense相当(大文字/小文字の区別をしない)になります。

regularとnoregularのいずれも指定しない場合は、あいまい検索(fuzzy)の指定があるときは自動的にregularの指定になり、あいまい検索の指定がないときは自動的にnoregularの指定になります。
 秀丸エディタのヘルプ(正規表現)
 秀丸エディタのヘルプ(正規表現)

fuzzy
fuzzyを付けるとあいまい検索をします。
fuzzyを付けて、regularとnoregularのいずれも指定しない場合は、自動的にregular相当(正規表現あり)になります。
fuzzyを付けず、regularとnoregularのいずれも指定しない場合は、自動的にnoregular相当(正規表現なし)になります。

inselect, inselect2
inselectを付けると「選択した範囲」で「行単位」の同じ動作になります。
inselect2を付けると「選択した範囲」で「文字単位」の同じ動作になります。(V8.93以降)
inselectまたはinselect2で検索した後は、finddown,findup,finddown2,findup2は「選択した範囲」の動作になります。これを解除するにはescapeinselect文を使います。
inselect2は、incolormarkerと同時に指定はできません。
inselect2を指定して検索した後は、targetcolormarkerは文字単位の選択用の予約された文字列になります。

linknext
linknextを付けると次の秀丸エディタも続けて検索します。

hilight
hilightを付けると「検索文字列の強調」になります。nohilightを付けると「検索文字列の強調」が無効になります。(V5.00以降)

masknormal, maskcomment, maskifdef, maskscript, maskstring, masktag, maskonly
masknormalは、追加の条件の「普通の文字」です。
maskcommentは、追加の条件の「コメント」です。
maskifdefは、追加の条件の「#ifdef等の無効部分」です。
maskscriptは、追加の条件の「スクリプト部分」です。
maskstringは、追加の条件の「文字定数」です。
masktagは、追加の条件の「HTML/XMLタグ」です。
maskonlyを付けない場合は、追加の条件は「を除く」です。maskonlyを付けると「のみ」になります。

loop
loopを付けると「一周する」になります。

noclose
nocloseを付けると「検索したら閉じる」をOFFにします。(searchdialogのみ)

incolormarker
incolormarkerは、追加の条件の「指定の範囲/カラーマーカー内」を有効にします。(V8.56以降)
対象となる範囲は、settargetcolormarkerで指定します。
incolormarkerは、inselect2と同時に指定はできません。

数値指定
searchoption相当の数値を直接指定することができます。(V6.50以降)
searchdown "[a-z]", 0x00000010;
searchdown "[a-z]", regular;
inselectに限っては、数値の前に記述しておくことができます。(V8.00以降)
searchdown "a", inselect, 0x02;

数値を連続して指定すると、searchoption2相当の値を直接指定できます。(V8.30以降)
例:searchdown $str, #searchoption, #searchoption2;

結果
成功したかしなかったかによって結果コードを返します。結果コードはresultキーワードで参照することができます。
成功した場合は 1 (true)になり、失敗した場合は 0 (false)になります。
searchdialogのダイアログでキャンセルした場合は -2 になります。(V6.50以降)

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

searchdownは、カーソル位置の次の文字から検索を開始します。カーソル位置から検索するには、searchdown2を使います。

検索にヒットした後、選択されるか点滅表示になるかは動作環境によって違います。
違いを無くすにはsetcompatiblemode文を使います。

searchdown等の文を使うと、検索ダイアログボックスの中の検索条件(大文字/小文字の区別、正規表現のON/OFF等)がマクロ内で実行した検索条件に書き換わってしまいます。
マクロでsearchdown文などを使っても検索ダイアログの検索条件を変わらないようにするには、searchdown等を実行する前に、「setcompatiblemode 0x20000;」を実行する方法があります。(V8.20以降より)

searchdown "文字";
searchdown "文字", word;
マクロとコマンドの違い
マクロではない通常のコマンド実行による検索ダイアログは、左上の▼ボタンから置換ダイアログに切り替えできたり、検索ダイアログを出したまま編集ができます。
マクロのfind文、searchdialog文など、検索ダイアログを出す文では、置換ダイアログの切り替えや、検索ダイアログを出したまま編集はできません。