English help on website



replaceall replaceallfast文(Ver9.35対応版)
目次検索系文− replaceall replaceallfast文
replaceall, replaceallfast文は、全置換を実行します。
replaceall "検索文字", "置換文字";
パラメータ1(文字列型)
検索文字列を指定します。

パラメータ2(文字列型)
置換文字列を指定します。

パラメータ3以降(予約語 または 数値型)
検索/置換のオプションを、以下の予約語をカンマ区切りで複数指定できます。
word
casesense または nocasesense
regular または noregular
fuzzy
inselect または inselect2
linknext
hilight または nohilight
incolormarker
masknormal maskcomment maskifdef maskscript maskstring masktag maskonly
loop
ask
searchoption, searchoption2相当の数値の指定も可能です。

結果コード
置換した個数になります。
中断した場合は-1になります。

JavaScript
JavaScriptでは、パラメータ3以降の予約語パラメータは、searchoption, searchoption2キーワード相当の数値のみの指定になります。


予約語パラメータについて
置換の予約語パラメータ
その他
replaceallは普通に全置換を実行し、replaceallfastは高速に全置換を実行します。

1つも見つからず失敗した場合は、カーソル位置はファイル先頭になります。inselectの場合は、行単位の選択の先頭になります。inselect2の場合はinselectとは違い、ファイルの先頭になります。

inselectやinselect2で全置換した後でも、範囲のみの状態は継続されます。
解除するには、replaceall後に、escapeinselectを実行します。

置換が終了しても、「何個置換しました」のメッセージは表示されず、代わりにresultに置換した個数が入ります。
linknextを付けて置換した場合、resultには現在の秀丸エディタで置換した数しか入りません。他の秀丸エディタでも置換した総数を取得するにはgetresultexを使います。
途中で中断された場合はresultは-1になります。

この文単体では「まとめてやり直し」の対象になりません。まとめてやり直しするには文の前後にbegingroupundoendgroupundoを書く必要があります。
ただし、linknextを付ける場合は全てのウィンドウで自動的にbegingroupundo〜endgroupundoをした扱いになります。(V8.01以降)

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

replaceall, replaceallfastのどちらも、通常のままだと「全置換処理中」の経過を表すダイアログが出ます。
disabledrawをしておくと、「全置換処理中」は出なくなります。