秀丸エディタQ&A捕捉事項

top秀丸エディタマクロ

update : 2024/02/12 (Mon)

1 はじめに

現在、秀丸エディタQ&A集を秀丸エディタVer.8系に対応させるよう編集作業中です。

このページの内容も、そのままではありませんが反映させている事もあり、正規表現関連以外は、徐々に縮小・整理していきます。

2 目次

第I部~秀丸エディタQ&A集

秀丸エディタの基本機能その他についての質問

秀丸マクロについての質問

第II部~知っていると便利な秀丸の機能

第III部~秀丸マクロのいろはにほへと

Ver.8は追加・変更が多いので、サイトー企画にある、秀丸エディタの紹介(Ver8.00対応版)を参照してください。

Ver.9の変更点は、秀丸エディタ 新機能の紹介)を参照してください。

第IV部~テキスト編集を極める!!

正規表現関連

3 第I部~秀丸エディタQ&A集

3.1 秀丸エディタの基本機能その他についての質問

3.1.1 [HME0084A]●行をソートすることは出来ませんか?

Q
行をソートすることは出来ませんか?
A

説明追加

秀丸エディタ Ver 5.00から変換モジュールが導入されました。変換モジュールライブラリに「Sort」があります。この変換モジュールを導入すれば、秀丸エディタでソートが可能になります。(変換モジュールはマクロからも使用できます。)

秀丸エディタ Ver 8.00から、ソートは、標準添付の変換モジュールに組み込まれたため、別途、変換モジュールを追加する必要はありません。また、TSV/CSV用に、タブ、カンマ区切りに限り、フィールドでソートが可能になってます。(TSV/CSV用ですが、通常のファイルでも使用可能)

変換モジュールの使い方・設定方法は「秀丸エディタ設定」-「変換モジュールを使うには」を参照してください。マクロから変換モジュールを使う方法はマクロから変換モジュールを呼び出す方法を参照してください。

注記追加

Windows(2000、XP)標準のsort.exeは、英文字の大文字・小文字を区別しません。その為、「sort < con > con」を実行しても、期待する結果にならない場合があります。

説明追加

先頭からではなく、途中からソートしたい場合等は、Windows標準のSortではなく、 UNIX系のSortを使えば可能です。 ( Windows標準のSortでも可能ですが、先頭からの文字数を指定するだけなので、固定長以外では使えない。 UNIX系ソートの場合、フィールドの区切り文字を指定し、フィールドでソートすることも可能。 ) UNIX系のソートは以下のURLから入手可能です。

(sort option < con > con の形式で実行してください。)

テキストファイルの内容

cccc 50
bbbb 200
dddd 100
aaaa 20
eeee 8

先頭からソート

aaaa 20
bbbb 200
cccc 50
dddd 100
eeee 8

第2フィールドでソート

dddd 100
aaaa 20
bbbb 200
cccc 50
eeee 8

第2フィールドで、数値としてソート

eeee 8
aaaa 20
cccc 50
dddd 100
bbbb 200

目次へ

3.1.2 [HME0089A]●IEのソース表示に秀丸を使いたい

Q
Internet Explorerの「表示」-「ソース」でソースを表示すると、通常はメモ帳で表示されますが、これを秀丸で開くように変更したいのですが?
A

説明追加

Ver.7から「その他」-「動作環境」-「関連付け」で設定を行います。(ブラウザの関連づけ)

上記操作でも変更ができない場合は、「Internet Explorer」にある「開発者ツール」を使用します。「開発者ツール」は「F12」を押すか、メニューの「ツール」-「「開発者ツール」から起動します。

「開発者ツール」が起動したら、メニューの「ファイル」-「Internet Explorerソース表示のカスタマイズ」-「その他」を選択する。

ソース表示のカスタマイズ

ファイル選択ダイアログが表示されるので、秀丸エディタ(hidemaru.exe)を指定する。

目次へ

3.1.3 [HMEXXXXA]●大文字を小文字に、小文字を大文字に変換したい

新規追加

Q
編集中のファイルにある大文字を小文字に、または小文字を大文字に変換することは出来ますか?
A

編集中のファイルにある、大文字/小文字を変換するには以下の方法があります。

  • 「大文字<->小文字の変換」を使う。

    「大文字<->小文字の変換」はカーソルのある文字だけを対象に、大文字<->小文字変換を行います。

    A→a B→b

    ただし、半角文字しか対応していません。

  • 「編集」メニューの「変換」を使う。

    「変換」メニューにある「UPPER CASE」が大文字変換、「lower case」が小文字変換になります。変換機能を使うには、変換する文字範囲を、あらかじめ選択しておく必要があります。「UPPER CASE」、「lower case」共に、半角全角文字を対象に変換を行います。

  • 置換を使う

    置換を方法もありますが、1文字単位でしか出来ません。 (正規表現を使っても。複数文字を同時に置換するのは無理です。)

    Perl等で使用されている「tr/searchlist/replacelist/」のような、リストを使った置換は、標準では出来ません。(田楽DLL+Bregexp.dllを使って、マクロを組めば可能かもしれない。)それと、エスケープシーケンス(テキスト修飾子)である、\l、\u、\L、\U等も使えません。

    秀丸エディタ Ver.8.13β8より、置換時、検索結果に対し、変換モジュールの機能を実行できるようになりました。「UPPER CASE」を指定すれば大文字変換、「lower case」を指定すれば小文字変換が可能です。
    置換で、変換モジュールの機能を使う」を参照してください。

目次へ

3.1.4 [HMEXXXXA]●編集しているhtmlファイルをブラウザで開きたい

新規追加

Q
秀丸エディタで編集中のhtmlファイルを、ブラウザで開きたい
A

秀丸エディタのコマンドに「関連付けで開く」というコマンドが、用意されています。この機能を使えば、編集しているファイルを、関連づけられたアプリケーションで開くことができます。

単純に、関連付け起動を行っているだけなので、ファイルを開いた時の挙動は、アプリケーションに依存します。

たとえば、htmlファイルで実行した場合、編集中のファイルを(保存する必要はあるが)ブラウザで開くことができますが、同じファイルで、複数回の「関連付けで開く」コマンドを実行した場合、複数のブラウザが開くことになります。(最初に開いているファイルをリロードすることはない。)

目次へ

3.1.5 [HMEXXXXA]●ファイルを開く場合、最初に開く場所を指定したい

新規追加

Q
ファイルを開く場合、最初に開く場所を指定したい
A

秀丸エディタ Ver.8より、「ファイルを開く」ダイアログの初期状態が指定できます。ただし、新規作成状態(無題の状態)か、常駐秀丸エディタから「開く」を選択した場合のみ、有効です。 (既存のファイルを開いている場合には、設定は無効になる。)

ファイル設定画面

マクロを使う方法もあります。(ファイルを開くときのフォルダ指定を参照)

目次へ

3.1.6 [HMEXXXXA]●ファイルを秀丸エディタで編集したのに、反映されていない

新規追加

Q
ファイルを秀丸エディタで編集したのに、メモ帳など他のアプリケーションで確認しても編集した内容が反映されていない
A

Windowsの「VirtualStore」という機能です。

Windows Vist以降、"C:\Program Files"や、Windowsのシステムフォルダ等、「保護されたフォルダ」に書き込むには、「管理者権限」が必要です。 Windows XPより前のWindowsでは、そのような制限がなかったため、Windows Vistaに対応していないソフトを使用し、「保護されたフォルダ」のファイルを書き換えようとしても、エラーになったり、最悪の場合はアプリケーションがクラッシュします。

その為、過去との互換性を重視し、"Windows Vistaに対応していないソフト"で「保護されたフォルダ」のファイルを書き換えた場合、実際のファイルを書き換えるのではなく、別の場所にファイルを作成し、そのファイルを書き換えるような動作になってます。つまり、"Windows Vistaに対応していないソフト"側から見ると、「保護されたフォルダ」のファイルを書き換えたように見えるが、実際は、Windowsがこっそり違う場所にすり替えているという状態です。

読み込み時も同様で、すり替えた場所にファイルが存在すれば、そちらのファイルを開く事になります。「保護されたフォルダ」のファイルを見た場合、

  • "Windows Vistaに対応していないソフト"は、Windowsがこっそり違う場所にすり替えた場所のファイル
  • "Windows Vistaに対応したソフト"は、実際のファイル

という別のファイルを開く事になるので、表示される内容が違ってしまいます。

秀丸エディタ 32bit版は、初期状態では、"Windows Vistaに対応していないソフト"に分類されていますが、設定により"Windows Vistaに対応したソフト"に切り替える事が可能です。

動作環境
├32bit版
│└□VirtualStoreを無効にする(再起動が必要)

目次へ

3.2 秀丸マクロについての質問

3.2.1 [HMM0058A]●setactivehidemaru 文の引数

Q
setactivehidemaru 文を使って編集ウィンドウを切り替えたいのですが、使い方がよく分かりません。
A

説明追加

秀丸エディタ Ver5.05以降、パラメータが追加されています。2番目のパラメタを指定すると、自分自身のウィンドウの重なり位置を調節できます。

3.2.1.1 setactivehidemaruの第二引数の使用例。「次の秀丸エディタ」を、「nexthidemaru」を使わないで行う。

初期状態。アルファベット(a~d)がウィンドウハンドル(ウィンドウ識別番号)、数字がウィンドウ順番です。

┏━━━━━━━┓
┃d             ┃
┣━━━━━━━┫
┃3 ┏━━━━━┻━┓
┃c             ┃
┣━━━━━━━┫
┃2 ┏━━━━━┻━┓
┃b             ┃
┗━┣━━━━━━━┫
    ┃1 ┏━━━━━┻━┓
    ┃a             ┃
    ┗━┣━━━━━━━┫
        ┃0             ┃
        ┗━┫              ┃
            ┃              ┃
            ┗━━━━━━━┛

「次の秀丸エディタ」に切り替えるため、2番目のウィンドウをアクティブにする。(setactivehidemaru 1;) 単純に2番目のウィンドウ(b)が先頭に移動するだけなので、(a)と(b)が入れ替わるだけ。再度2番目のウィンドウをアクティブにしても、(a)と(b)が入れ替わるだけで、(c)には移動しない。

setactivehidemaru 1;実行時の動作
┏━━━━━━━┓
┃d             ┃
┣━━━━━━━┫
┃3 ┏━━━━━┻━┓
┃c             ┃
┣━━━━━━━┫
┃2 ┏━━━━━┻━┓
┃b             ┃
┗━┣━━━━━━━┫
    ┃0             ┣━┓
    ┃              ┃ a┃
    ┗━┫              ┣━┫
        ┃              ┃ 1┃
        ┗━┳━━━━━┛
            ┃              ┃
            ┗━━━━━━━┛

←→
┏━━━━━━━┓
┃d             ┃
┣━━━━━━━┫
┃3 ┏━━━━━┻━┓
┃c             ┃
┣━━━━━━━┫
┃2 ┏━━━━━┻━┓
┃b             ┃
┗━┣━━━━━━━┫
    ┃1 ┏━━━━━┻━┓
    ┃a             ┃
    ┗━┣━━━━━━━┫
        ┃0             ┃
        ┗━┫              ┃
            ┃              ┃
            ┗━━━━━━━┛

「次の秀丸エディタ」で順次ウィンドウを切り替えるには、先頭のウィンドウを最後に移動する必要があります。第二引数を指定し、先頭のウィンドウを最後に移動させる。

setactivehidemaru 1,-1;実行時の動作
┏━━━━━━━┓
┃d             ┃
┣━━━━━━━┫
┃2 ┏━━━━━┻━┓
┃c             ┃
┣━━━━━━━┫
┃1             ┃
┏━━━━━┻━┓
┗━┃b             ┃
    ┣━━━━━━━┫
    ┃0             ┣━┓
    ┗━┫              ┃ a┃
        ┃              ┣━┫
        ┃              ┃ 3┃
        ┃              ┃
        ┗━┳━━━━━┛
            ┃              ┃
            ┃              ┃
            ┗━━━━━━━┛

┏━━━━━━━┓
┃d             ┃
┣━━━━━━━┫
┃1 ┏━━━━━┻━┓
┃c             ┃
┣━━━━━━━┫
┃0             ┃
┃              ┣━┓
┗━┫              ┃ b┃
    ┃              ┣━┫
    ┃              ┣━┻━┓
    ┗━┳━┳━━━┛     a┃
        ┃3 ┣━━━━━━━┫
        ┃             2┃
        ┃              ┃
        ┗━┫              ┃
            ┃              ┃
            ┃              ┃
            ┗━━━━━━━┛

┏━━━━━━━┓
┃d             ┃
┣━━━━━━━┫
┃0             ┣━┓
┃              ┃ c┃
┃              ┣━┫
┃              ┃ 3┃
┃              ┣━┻━┓
┗━┳━┳━━━┛     b┃
    ┣━━━━━━━┫
    ┃2 ┏━━━━━┻━┓
    ┗━┃             a┃
        ┣━━━━━━━┫
        ┃             1┃
        ┃              ┃
        ┗━┫              ┃
            ┃              ┃
            ┃              ┃
            ┗━━━━━━━┛

目次へ

3.2.2 [HMM0067A]●マクロで引用符を取得するには

Q
秀丸マクロの中で、秀丸で設定されている引用符を文字列として取得したいのですが、どうすればいいですか?
A

説明追加

現在の秀丸(Windows95以降対応バージョン)では、設定は全てレジストリに保存されています。 iniファイル関連の関数で、"HIDEMARU.INI"にアクセスすると、自動的にレジストリをアクセスするようになっていますが、これは16bit版秀丸との(マクロの)互換性のための動作です。現状では、レジストリアクセス関数で、レジストリから値を取得する方がいいでしょう。

// (例) 引用符を取得するマクロサンプル ---------------------
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
if(result){
    $inyoufuini = getregstr("RefMark");
    closereg;
    #inyoufuiniLen = strlen($inyoufuini);
    if(#inyoufuiniLen <= 2){
        $inyoufu = "";
    }else{
        $inyoufu = midstr($inyoufuini, 1, #inyoufuiniLen - 2);
    }
    message $inyoufu;
}else{
    message "引用マークの取得に失敗しました。\nマクロを終了します。";
}
endmacro;
// (ここまで)-----------------------------------------------

目次へ

3.2.3 [HMM0076A]●重複行の削除

Q
重複行の削除はできませんか?
A

説明追加

秀丸エディタ Ver 5.00から変換モジュールが導入されました。変換モジュールライブラリに「uniq」があります。この変換モジュールを導入すれば、秀丸エディタで重複行の削除が可能になります。(変換モジュールはマクロからも使用できます。)

変換モジュールの使い方・設定方法は秀丸エディタ設定変換モジュールを使うにはを参照してください。

正規表現を使う方法もあります。

検索文字:(^.+\n)\1
置換文字:\1

連続している行を1行にします。同じ行が複数連続する場合には、複数回実行する必要があります。

目次へ

3.2.4 [HMMXXXXA]●自動起動マクロで複数のマクロを実行したい

新規追加

Q
自動起動マクロでは、一つのマクロしか指定できません。複数のマクロを実行する方法はありませんか?
A

自動起動マクロにはマクロは一つしか指定できません。複数のマクロを登録するには、ダミーのマクロを用意し、その中で実行したいマクロを指定します。マクロ実行中に、マクロを実行するには、"execmacro"文を使用します。

//ダミーマクロの例
execmacro "実行したいマクロ名その1";
execmacro "実行したいマクロ名その2";
execmacro "実行したいマクロ名その3";

目次へ

3.2.5 [HMMXXXXA]●マクロ実行すると「DLLがロードされていないのにdllfunc関数が使われました」と表示される

新規追加

Q
マクロ実行すると「DLLがロードされていないのにdllfunc関数が使われました」と表示され、マクロが中断してしまいます。
A

基本的には マクロのバグ(?)で、原因としては 以下の内容が考えられます。

  • loaddll文/関数で、dllの読み込みに失敗しているのに、dllfunc/dllfuncstrを呼び出している
    • DLLの読み込みに失敗する原因としては、DLLが適切な位置に配置されていない等が考えられます。実行するマクロと同じ場所か、マクロフォルダか、秀丸エディタ本体と同じ場所に配置するかは、マクロの説明書等に記載されているはずなので、確認してください。
    • マクロとDLLが、同じ場所にあるにも関わらず、動作しない場合は、DLLのロード部分を確認見直してみてください。
  • loaddll文の有効範囲の問題(DLLの有効範囲を参照)
  • 複数DLLを使用していた場合、DLL切替に失敗している

他の人が作ったマクロの場合は、作った人に連絡するようにして下さい。

秀丸エディタ Ver.8.00を使用している場合、マクロにバグが無くても、「DLLがロードされていないのにdllfunc関数が使われました」と、表示される場合があります。 (loaddll関数の場合を参照)

目次へ

3.2.6 [HMMXXXXA]●通常版で、小数点を含む演算を行う方法

新規追加

Q
通常版で、小数点を含む演算を行う方法はありませんか?
A

浮動小数点演算を行うには、浮動小数点数版(統合版)が必要ですが、WSHを使えば、多少手間がかかりますが、通常版でも浮動小数点演算が可能です。

"ScriptControl"を使用し、WSHで演算させて、文字列として、取り込みます。

注意:64bit環境では、"ScriptControl"はサポートされていないので、以下のサンプルは動作しません。

  • 64bit OSで、64bit秀丸エディタを使用している場合は動作しません。
  • 64bit OSで、32bit秀丸エディタを使用している場合は動作します。(必要なファイルが入っていれば)
#sc = createobject("ScriptControl");
if(#sc == 0){
    message "オブジェクトの作成(ScriptControl)に失敗しました。";
    endmacro;
}
setpropstr #sc,"Language", "VBScript";
if(!result){
    message "プロパティの設定(Language)に失敗しました。";
    endmacro;
}
$ret1 = callmethod_returnstr(#sc, "Eval","cstr(1.01+0.03)");
if(getresultex(10) == false){
    message "Eval(1)の実行に失敗しました。";
    releaseobject #sc;
    endmacro;
}
message $ret1;
$ret2 = callmethod_returnstr(#sc, "Eval","cstr(1.155-0.03)");
if(getresultex(10) == false){
    message "Eval(2)の実行に失敗しました。";
    releaseobject #sc;
    endmacro;
}
message $ret2;
$ret3 = callmethod_returnstr(#sc, "Eval","cstr(1.155/0.3)");
if(getresultex(10) == false){
    message "Eval(2)の実行に失敗しました。";
    releaseobject #sc;
    endmacro;
}
message $ret3;

releaseobject #sc;
endmacro;

目次へ

4 第II部~知っていると便利な秀丸の機能

4.1 ●編集位置のマーク及び検索

内容変更

ファイル編集中に、どの行を編集したか知りたい場合は、以下の手順で編集個所を知ることが出来ます。

[手順]

  1. 「その他→動作環境→高度な編集1」にある「編集した行の表示方法」で、「行番号の色を変える」を選択する。
  2. 「その他→ファイルタイプ別の設定→デザイン」にある「編集した行の号番号」で、色などデザインを設定してください。(ここまでで、編集した行番号が、設定した状態になります)
  3. 「検索→編集マークの上(下)検索」で、編集行に移動することが出来ます。

5 第III部~秀丸マクロのいろはにほへと

5.1 マクロ内での「\」や特殊文字の使い方

5.1.1 【1】「\」の意味

内容追加

  • 「\u????」 :任意のUnicode
    ????の部分に16進数4桁でUnicode(コードポイント)を記述する。コードポイントが16進数4桁以上の場合は、サロゲートペアで記述する必要がある。
  • 「\U????????」:任意のUnicode(秀丸エディタ Ver.8.52以降)
    ????????の部分に16進数8桁でUnicodeを記述する。(コードポイントをそのまま記述可能。足りない桁は"0"で埋める事。)

5.2 秀丸マクロで文字列を編集する

5.2.1 【4】範囲選択するには

説明追加

  • 検索系文を使って検索する

    「動作環境」-「ユーザーインターフェース」-「検索での表示」で、「範囲選択」が選択されている必要があります。ちなみに、この選択状態は、searchmodeキーワードで知ることができます。

    以下を追加

    秀丸エディタ Ver 6.00から追加されたsetcompatiblemodeを使用すれば、「検索での表示」の設定を、マクロ実行時にレジストリを書き換えないで、一時的に変更することが可能です。

5.2.2 【5】範囲選択を解除するには

注意書き追加

endsel;を実行して選択モードを終了しても、範囲選択状態ままカーソル移動コマンドを使うと、移動した場所まで範囲選択状態になります。動作的にはおかしいけど、現状(2004/05/22)においては仕様ということです。

範囲選択した後の操作(コマンド?)で範囲選択が解除されれば問題はないが、解除されない場合にカーソル移動を行うと思わぬ結果になるので注意。

5.2.3 【6】文字列型変数に取り込むには:その1(gettext文)

内容の訂正と追加

ちなみに、gettext文を実行すると、(gettext文での選択範囲が、秀丸ウィンドウ上で範囲選択されている範囲と重なっているか否かに関わらず)範囲選択は解除されます。

秀丸エディタVer5.00β5より、gettext(gettext2)文に第5パラメタが追加され、範囲選択を維持することができるようになりました。(0:範囲選択解除 1:範囲選択保持 省略した場合は0と見なされる。)

秀丸エディタVer5.00β4より、gettext2文が追加されました。gettext文との違いは、columnとlinenoで、指定を行うところです。

検索系のコマンドと併用する場合、"検索での動作"の設定にかかわらず、マッチした範囲を取り込むには、 seltopx~selendyキーワードではなく、foundtopx~foundendyキーワードを使うといいでしょう。

5.3 秀丸ウィンドウの管理

5.3.1 【4】(補足) タブ関連

新規追加

秀丸エディタVer.4.10より、ウィンドウのタブ化が可能になりました。さらに、Ver.5.00より複数タブウィンドウにも対応しました。

タブモードが有効な場合、通常と同じくopenfile文を使えば、アクティブなタブウィンドウに、タブとして追加されます。

新規のタブウィンドウとして開く場合は、起動オプション"/i"を指定します。(Ver.5.00以降)

現在のタブウィンドウから、別のタブウィンドウまたは新規タブウィンドウに移動するには、 settabgroup文を使います。

タブ間の移動にはnexttab(次のタブ)、prevtab(前のタブ)を使います。(Ver.5.00以降) Ver.4.00系は、複数タブウィンドウをサポートしていないので、通常の移動命令で切替が可能です。

openfile文で座標指定が可能ですが、タブモードの場合、"/i"オプションを併用する場合、または、他に秀丸ウィンドウが存在しない場合以外は、アクティブなタブウィンドウに追加される為、座標指定自体が無効化されます。

タブモード時は、"ウィンドウサイズを自動調整する設定"が無効化されます。

  • 1行の文字数を越えたウィンドウを自動的に小さくする
  • 行番号表示の状態でウィンドウサイズを自動調整する

5.3.2 【5】(補足) 常に手前に表示

新規追加

秀丸エディタVer.4.10以降から、"常に手前に表示"が追加されました。タブモードの場合、"常に手前に表示"してある、タブグループから分離すると、 "常に手前に表示"の設定も引き継がれます。

5.4 マクロ登録数の制限突破大作戦

5.4.1 【2】「エッ! 秀丸ってマクロが80個しか登録できないのっ!?」

内容追加

●作例3

slide_moon氏作成マクロ  Magic Key Ver.0.11 -- 多工程短縮キー

作例2で紹介されている"KEY_ASIN.MAC"の模写マクロである「magickey.mac」と保守マクロである「magickey_cfg.mac」のセット。追加機能として、多段階のキーストローク設定が可能。

●作例4

ませま氏作成マクロ キー割り当て拡張マクロ Ver. 0.03

作例2で紹介されている"KEY_ASIN.MAC"の機能拡張版。拡張子毎の割り当て変更、多段階のキーストローク設定が可能。また、200 以上の独自コマンド群(マクロ)がセットになっている。

●作例5

IKKI氏作成マクロ "Takoashi"

秀丸エディタ ver 8.56 以降で使用可能なマクロです。

  • ひとつのキーに対し、ファイルタイプごとに異なる機能を割り当てる
  • ひとつのキーに複数の機能を割り当てて、メニューで選択する
  • ひとつのキーに複数の文字列挿入機能を割り当てて、連打で循環する
  • 1行マクロを設定ファイルに直接書く

等の機能があります。

目次へ

5.5 秀丸エディタVer.6.00 マクロ関連の変更履歴

5.5.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.6.00

  • grepdialog2文を追加。

  • grepdialog2文のresultはgrep文と同じになるようにする。

  • 新しい文

    setcompatiblemode
    fold, unfold, nextfoldable, prevfoldable, selectfoldable
    foldall, unfoldall
    rangeeditin, rangeeditout
    nextoutlineitem, prevoutlineitem
    showoutline, showoutlinebar, showfoldingbar
  • 新しい数値キーワード

    foldable, folded, rangeedittop, rangeeditend, rangeeditmode, screentopy
  • 変更

    config "x"の追加 xOutlineBar, xRangeEdit, xFolding, xFoldingTwigBar
    configcolor, getconfigcolor で新しい色
    loadhilight, savehilight で対象を指定
  • input関数のUnicode対応

  • setcompatiblemode で排他制御(同じファイルを開く場合)と「検索での表示」の指定。

  • title でパラメタを拡張してステータスバー、見出しバー、タブモードのタブ名の指定可能にした。

  • getfocus追加。(値=1:編集エリア,2:アウトライン解析の枠,3:検索ボックス,またはウィンドウハンドル)

  • setfocus追加。

  • nextfoldable, prevfoldable で失敗時にresultを返すようにする。

  • iskeydownを拡張してキーのトグル状態を取得できるようにする。

  • nextpage,prevpage でパラメタを指定して1ページを修正して加算する行数を指定できるようにする。

  • loadhilightのresultで読み込まれた内容のフラグを返すようにする。

  • getpathhist,setpathhist でヒストリに常駐の状態を取得/設定できるようにする。

  • iconthistabを追加。

  • マクロで複数行コメント/*~*/に対応

5.5.2 【2】仕様変更 - 「秀丸エディタ」Ver.6.00

5.6 秀丸エディタVer.6.50 マクロ関連の変更履歴

5.6.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.6.50

  • searchoptionの追加ビット

  • searchdown等の追加パラメタ

    masknormal maskcomment maskifdef maskscript
    maskstring masktag maskonly loop noclose
    (grep用) backup preview outputsingle
    またはsearchoption相当の数値直接
  • grepreplace, grepreplacdialog2文追加

  • refpaste(引用付き貼り付け)

  • tolower、toupper関数追加

  • filter関数追加

  • eventキーワード、geteventparam関数、seteventnotify文追加

  • autocomplete文追加

  • gowordtop2 と gowordend2 を追加

  • openbyshellで引数を指定できるようにした

  • config "x:~";とgetconfig()で指定できるものに、以下のものを追加。

    AutocompFlag1(autocomplete文の第2パラメタと同じ)
    AutocompFlag2(autocomplete文の第3パラメタと同じ)
    AutocompDic(autocomplete文の第4パラメタと同じ)
    AutocompAuto
  • setfloatmode追加(浮動小数点数版(統合版))

  • configstateキーワード追加

  • encodeキーワード追加(charsetと同じ)

  • syncoutline追加

5.6.2 【2】仕様変更 - 「秀丸エディタ」Ver.6.50

  • 「次の秀丸エディタも続けて…」と「置換の前に確認」は併用できないように仕様変更。
  • searchdialogとreplacedialogでキャンセルした場合、result に -2 を入れる。

5.7 秀丸エディタVer.7.00 マクロ関連の変更履歴

5.7.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.7.00

追加された命令の詳細は、マクロヘルプを参照して下さい。

  • begingroupundo, endgroupundo まとめてアンドゥ
  • colormarker 一時的なカラーマーカー
  • existfile 拡張パラメタで属性の取得を可能にした。
  • undo文にパラメタを指定してやり直しのグループ化していた場合の指定
  • getcolormarker, nextcolormarker, prevcolormarker カラーマーカーの検索、取得
  • gettitle文追加
  • findhidemaruを、短縮名でも可能にした。
  • toupper(),tolower()で、第二パラメタを追加し、対象を指定できるようにした。

5.7.2 【2】仕様変更 - 「秀丸エディタ」Ver.7.00

  • wordleft2を追加して、wordleftはV6.xx以前と同じ動作にする。
  • nexttabでマクロ制御切り替えできるようにした。
  • saveasでの、改行指定の動作とバージョンによる違いあり。(詳細はマクロのヘルプ「openfile, saveas文など」を参照)

5.8 秀丸エディタVer.8.00 マクロ関連の変更履歴

Ver.8からVer.7からの変更点は、かなり多い為、変更内容については、サイトー企画のページを参照してください。

5.8.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.00

秀まるおのホームページ(サイトー企画)-秀丸エディタの紹介(Ver8.00対応版)(追加コマンド/設定一覧) にある、「マクロ」の項目を参照して下さい。

  • 追加キーワード

    platform
    settingdir
    backupdir
    compfilehandle
    outlinehandle
    lineselecting
    selectionlock
    mouseselecting
    scrolllinkhandle
    xpixel
    ypixe
    formwidth
  • 追加関数

    • マクロ引数

      getarg
    • 静的変数関連

      setstaticvariable
      getstaticvariable
    • 整形関連

      form
      unform
      showformline
    • レジストリ操作

      getregbinary
      writeregbinary
    • カラーマーカー関連

      colormarkerdialog
      deletecolormarker
      deletecolormarkerall
    • 文字列操作関連

      wcslen
      wcsleftstr
      wcsrightstr
      wcsmidstr
      wcsstrstr
      strrstr
      wcsstrrstr
      byteindex_to_charindex
      charindex_to_byteindex
      wideindex_to_charindex
      charindex_to_wideindex
    • DLL関連

      dllfuncw
      dllfuncstrw
      loaddll(関数版)
    • 検索関連

      searchoption2
      findspecial
    • 内容比較関連

      prevcompfile
      nextresult
      prevresult
    • クリップボード関連

      getclipboardinfo
      copyformed
      poppaste2
      cutline
      cutword
    • カーソル移動関連

      backtab
      forwardtab
      moveto2
      gotagpair
    • ウィンドウ関連

      fullscreen
      refreshoutline
      refreshtabstop
    • ブックマーク関連

      loadbookmark
      savebookmark
    • その他

      getresultex
      seterrormode
      deletefile
      quitall
      autocompstate
      deleteline2
      beginlinesel
      charcount
      showcharcount
      runex
      help4
      help5
      help6
      enablebreak
      disablehistory
  • 自動起動マクロの追加

    アクティブ切り替え後
  • COM関係追加

    createobject
    getobject
    callmethod
    callmethod_returnstr
    callmethod_returnnum
    callmethod_returnobj
    getpropstr
    getpropnum
    getpropobj
    member
    setpropstr
    setpropnum
    setpropobj
    releaseobject
    getcollection
    sleep
    keepobject
  • ファイルマネージャー枠(HmExplorerPane.dll)関数

    SetMode
    GetMode
    LoadProject
    SaveProject
    GetProject
    GetWindowHandle
  • アウトライン枠(HmExplorerPane.dll)関数

    Output
    Push
    Pop
    GetWindowHandle

5.8.2 【2】仕様変更 - 「秀丸エディタ」Ver.8.00

秀まるおのホームページ(サイトー企画)-秀丸エディタの紹介(Ver8.00対応版)(追加コマンド/設定一覧) にある、「マクロ」の「・変更,パラメータ追加」を参照して下さい。

  • 変更、パラメータ追加等

    getcolormarker で行末
    colorcode で行末
    menu でセパレータ
    openbyshellでresult
    openfile で不足分のエンコード指定, wb ws 指定
    windowstate2 全画面表示かどうか
    print ダイアログを出す
    appendsave パラメータ対応
    split 新タイプ,左右
    savedesktop restoredesktop ファイル名指定
    updated 他の秀丸エディタからも取得
    loadkeyassign savekeyassign 設定ファイル用のフォルダ
    clearcliphist 指定項目削除
    setcompatiblemode 貼り付け後のカーソル位置
    scrolllinkでウィンドウ指定
    insert文で\x0d \x0aを正確解釈するパラメータ
    replaceall等の数値指定と合わせて、inselectも指定できるように
    execmacroでパラメータ渡し
    nextcompfileの追加パラメータ
    compfileの追加パラメータ
    grep文の追加パラメータ
    setsearchの追加パラメータ
    geteventparam(2)の戻り値
    fontmodeは、固定ピッチフォントでもTSV/CSVモードであればプロポーショナル扱いに
    文字列型変数のサイズを大きくする
    loaddll関数,dllfunc等で複数扱えるように

5.9 秀丸エディタVer.8.10 マクロ関連の変更履歴

Ver.8.00からVer.8.10からの変更点として、主なのは、DirectWrite対応です。

5.9.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.10

  • 追加キーワード

    formline(整形ラインの表示の有無)

  • その他

    マクロ実行時、常駐秀丸のメニューから中断できるようにする。

5.9.2 【2】仕様変更 - 「秀丸エディタ」Ver.8.10

  • 変更、パラメータ追加等
    • saveconfig文で一時的な状態のアウトライン解析の枠も保存するようにする。
    • setfilehistで空の文字列で最後のヒストリを消した場合、レジストリにゴミを書かないようにする。

5.10 秀丸エディタVer.8.11 マクロ関連の変更履歴

5.10.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.11

  • その他
    • dllfuncのパラメータで、16KBの制限を無くす。
    • openbyhidemaruで開かれた秀丸エディタにマクロの切り替えが移らなかったのを修正。

5.10.2 【2】仕様変更 - 「秀丸エディタ」Ver.8.11

  • 変更、パラメータ追加等

    searchdownしたときもprevposの直前の位置の対象にする。

5.11 秀丸エディタVer.8.12 マクロ関連の変更履歴

5.11.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.12

  • その他
    • マクロの実行時のエラーが出たとき、逆コンパイルした内容を表示する。
    • run文などでプログラム実行中にプログラム実行を中断した場合はマクロも終わらせる。

5.12 秀丸エディタVer.8.20 マクロ関連の変更履歴

5.12.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.20

  • 追加
    • allowobjparam 文
    • selopenx, selopeny キーワード
  • 変更、パラメータ追加等
    • カーソル移動後タイマーのイベントマクロで、geteventparam(4)にて、どういうコマンドによってカーソル移動したかが分かるようにした。
    • 「setcompatiblemode 0x20000;」にて、マクロ内で検索系コマンドを実行しても、マクロが終了したら自動的に検索条件を元に戻せるようにした。
  • その他
    • マクロのfilter文およびfilter関数で、変換モジュールの名前の「.hmf」または「.hmf64」を省略して指定しても大丈夫なようにした。
    • 正規表現での置換の時に、\(0,ToUpper)のような形で変換モジュールの関数呼び出し出来るようにした。
    • 「動作環境」で、マクロ変数の上限サイズを指定出来るようにした。

5.13 秀丸エディタVer.8.30 マクロ関連の変更履歴

5.13.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.30

  • 追加
    • HmExplorerPane.dll に GetUpdated関数追加。
    • cutafter 文
    • getautocompitem 関数
    • selectcolumn 文
    • lineupdated キーワード
  • 変更、パラメータ追加等
    • undo命令のパラメータで数値の3を指定したら、「動作環境・編集・全置換のやり直し」で指定した方法でundoするようにした。
    • nextoutlineitem,prevoutlineitemで、パラメータを指定して「自動的な選択/部分編集の対象」がOFFの見出しにもジャンプできるようにする。
    • platform キーワードで持ち出しキットで動作中かどうかのビット追加。
    • copyword にパラメタを指定して連続した単語を指定可能にする。
    • filetype キーワードでプログラム実行中のウィンドウは"executing"を返すようにする。
    • setcompatiblemode 0x80000;でマクロ実行後にもカーソル移動後と編集後の自動起動マクロを動かせるようにする。
    • getsearchhist,setsearchhist で常駐の状態を取得/設定できるようにする。
    • getsearchhist,getreplacehist で-1を指定することで最大数を取得できるようにする。
    • setsearchhist,setreplacehist で第3パラメータに2を指定することで使用数を設定できるようにする。
    • grep, grepdialog2 文で、エンコード指定と searchoption2 相当の値を数値でパラメーター指定できるようにする。
    • ファイルを開いた直後、アクティブ切り替え直後の geteventparam で、タグジャンプによって開かれたかを判断できるようにする。
    • autocomplete 文の第一パラメータで10以上も指定できるようにする。
    • runex で標準出力のパラメータに8を指定してアウトプット枠に追加できるようにする。
    • getautocompitem は範囲選択を解除しないようにする。
    • getautocompitem でカーソル位置が移動しないようにする。
    • selectcolumn はパラメータ省略時はカーソル位置のカラムを選択する。
    • getcolormarkerで幅ゼロまたは終端の情報を取得できるようにするパラメータ追加。
    • setencode の第3パラメータでBOMを指定できるようにする。
    • localgrep で searchoption2 相当のフラグを数値指定できるようにする。
  • その他
    • BOX選択でも一時的なカラーマーカーとcolormarker文を適用可能にする。
    • colormarker文などでレイヤーを持たせることができるようにする。
    • マクロの変数が多いときの速度改善。

5.14 秀丸エディタVer.8.40 マクロ関連の変更履歴

5.14.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.40

  • 追加

    • colormarkerallfound 文 検索でマッチする箇所を色付けする。
    • selectcolormarker 文 カラーマーカーをつけた箇所を選択する。(複数あれば、複数選択となる。)
    • invertselection 文 範囲選択箇所を反転する。(範囲選択した箇所と、それ以外の箇所を入れ替える。)

    複数選択関連

    • multiselecting キーワード 複数選択しているかどうか
    • reservemultisel 文 選択範囲を複数選択の候補に設定する
    • selectreservedmultisel 文 「reservemultisel 文」で「複数選択の候補」に設定した箇所を、複数選択状態にする。
    • clearreservedmultisel 文 選択範囲を「複数選択の候補」から解除する。
    • clearreservedmultiselall 文 すべての「複数選択の候補」を解除する。
    • selectallfound 文 現在の検索条件にマッチする箇所を、すべて複数選択状態にする。
    • tomultiselect 文 現在の範囲選択を複数選択に切り替える。(複数行選択していた場合は、改行を区切りにして複数選択になる)
  • 変更、パラメータ追加等

    • beginlinesel 範囲選択が含まれる行すべてを行単位の選択にしてから、行選択モードに移る。

    • copyline パラメータに1を指定すると、範囲選択が含まれる行を、すべて行選択にしてコピーする。

    • cutline パラメータに1を指定すると、範囲選択が含まれる行を、すべて行選択にしてカットする。

    • colormarker パラメータに開始位置と終了位置を指定可能にした。(範囲選択していなくても、指定した箇所にカラーマーカーをつける。)

    • existfile 第二パラメータに2を指定すると、ファイルサイズを取得可能にした。ファイルサイズは、マクロの数値範囲である2G(2147483647)が最大となる。存在しないファイルを指定した場合は、0(zero)が取得できる。

    • setcompatiblemode 0x00100000; で、複数選択対応。

    • colormarker文で、スタイルに-1を指定もできるように修正。

    • runex プログラム実行のパラメータにUTF-8を追加。

    • run文のコマンドラインに%cや%lを書けるように修正。

      %l:カーソル位置の行番号(先頭が1)
      %c:カーソル位置の桁位置(行頭が1)
  • その他

    • colormarkerallfound の デフォルトで(未指定時に)使用されるレイヤー名は、"\x01#allfound"というレイヤー名になる。カラーマーカー関連の命令では、このレイヤー名を指定するか、"findmarker"というオプション指定することにより、操作可能。

5.14.2 【2】仕様変更 - 「秀丸エディタ」Ver.8.40

  • 複数個所の同時選択&同時編集対応。
  • マクロファイル用のフォルダ、設定ファイル用のフォルダ設定で、環境変数を使用可能にした。

5.15 秀丸エディタVer.8.50 マクロ関連の変更履歴

5.15.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.50

  • 追加
    • autospellcheckswitch 文 自動スペルチェックの切り替え。
    • spellcheckdialog 文 スペルミスの修正 ダイアログの表示
    • stophistoryswitch 文 ヒストリの記録を中断
    • selectword2 文 単語選択(全部) (V6.50以降の動作)
    • wordright2 文 単語右(V6.50以降の動作)
    • wordrightsalnen2 文 単語右(サルネン風) (V6.50以降の動作)
    • COMPFILE文をマクロヘルプに追記。
  • 変更、パラメータ追加等
    • casechange文 パラメータで対象文字指定の対応。
    • toupper, tolower関数で対象文字指定の対応。
    • tolower, toupper文にパラメータ指定を追加。
    • forwardtab,backtabでカーソル移動したかどうかでresultが設定されるように修正。
    • saveall文にパラメータを指定できるようにして、無題ファイルを除外できるように修正。
    • deletecolormarker文で、ユーザーデータを指定して範囲選択せずに直接消すパラメータの対応。
    • nextresult, prevresultにパラメータ追加して、対象を指定できるように修正。
  • その他
    • マクロファイルのUTF-8(BOM付き)対応。

5.15.2 【2】仕様変更 - 「秀丸エディタ」Ver.8.50

  • 「UPPER CASE」「lower case」「大文字<->小文字の変換」コマンドはアクセント記号などが付いたものも対象にするように修正。

5.16 秀丸エディタVer.8.52 マクロ関連の変更履歴

5.16.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.52

  • 追加
    • マクロの文字列で\Uxxxxxxxxと書いて8桁の16進数で4バイトのUnicodeを記述できるように対応。

5.17 秀丸エディタVer.8.54 マクロ関連の変更履歴

5.17.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.54

  • 追加
    • setfiletype 文 ファイルタイプ別の設定を識別するための拡張子を設定。
    • setconfigstate 文 ファイルタイプ別の設定の状態を指定。
    • quote 関数 正規表現のメタ文字をエスケープした文字列を返す。
    • splitpos キーワード ウィンドウの分割されている場合、分割位置を表す。
  • 変更、パラメータ追加等
    • split文で明示指定するパラメータ追加。
    • nextpage、 prevpage でパラメータ指定して、「スクロールしてもカーソル位置を固定」モードに明示的にできるようにするように修正。
    • config "x"で指定できるものにBlockquoteFix(指定桁数をインデントする)を追加。
    • macrohelp文でパラメータでキーワードを指定して開くことができるように修正。
    • insert文の第2パラメータに2を指定可能にして、自動アンインデントの対応。
    • saveconfig文で「折りたたみ用の余白」の一時的な状態を解除されるように修正。

5.18 秀丸エディタVer.8.56 マクロ関連の変更履歴

5.18.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.56

  • 追加
    • sprintf 関数 文字列書式に従った文字列を返す。
    • settargetcolormarker 文 追加の条件の「指定の範囲/カラーマーカー内」が有効な場合、対象となる範囲を指定。
    • targetcolormarker キーワード settargetcolormarkerで指定されている文字列を取得。
    • writeinistrw, writeininumw, getinistrw, getininumw を追加。(iniファイル関連のUnicode対応版)
    • DDE関連マクロのUnicode版を追加。
    • colormarkersnapshot 文を追加。 現在のカラーマーカーの状態をやり直し可能にする。
    • getresultex(15)で置換の確認ダイアログがどのようにして閉じられたかを得られるようにした。
  • 変更、パラメータ追加等
    • searchdown等に incolormarker パラメータを追加

    • searchoption2 で追加の条件で「指定の範囲/カラーマーカー内」が有効かどうかの判定を追加

    • replaceallなどでaskオプション指定時、置換を実行した回数をresultに入れるように修正。

    • searchdownなどの文で、数値として検索オプションを書く書き方で、2つ連続して書くと searchoption2相当も記述できるように修正。

      例:searchdown "a", #searchoption1, #searchoption2;

5.19 秀丸エディタVer.8.58 マクロ関連の変更履歴

5.19.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.58

  • 追加

  • 変更、パラメータ追加等

    • setcompatiblemode で「前のカーソル位置」を変更させないフラグを追加。
    • saveas文とappendsave文にselectionオプションを追加
    • appendsave文でファイルが無いときは自動的に作成されるように変更。
    • appendsave文でselectionオプションを付けているとき通常の範囲選択でないときはエラーになるように修正。
    • localgrep文でもoutputsingleとoutputsametabが働くように修正。
    • setcompatiblemodeの「貼り付け後のカーソル位置」のフラグを、insertfileでも適用するように修正。

5.20 秀丸エディタVer.8.60 マクロ関連の変更履歴

5.20.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.60

  • 追加

    • beginrectmulti文 BOX範囲選択開始(複数選択化)
  • 変更、パラメータ追加等

  • その他

    • configset文で文字列をうまく解釈できないことがあるバグ修正。

5.21 秀丸エディタVer.8.62 マクロ関連の変更履歴

5.21.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.62

  • その他
    • openbyshell文でダブルクォーテーションでくくった場合に動作しないバグ修正。

5.22 秀丸エディタVer.8.66 マクロ関連の変更履歴

秀丸エディタ本体の更新内容に関しては、以下になります。

5.22.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.66

  • 追加
    • setdlldetachfunc文 DLLが解放されるタイミングで呼び出される関数を設定します。
    • codepageキーワード 現在のエンコードの種類に対応するコードページ
    • 外部DLLから秀丸エディタのテキスト取得などをできるエクスポートされた関数を追加。
      • Hidemaru_GetTotalTextUnicode関数 テキスト全体のメモリ確保して返す。
      • Hidemaru_GetLineTextUnicode関数 指定した行番号に対応するテキスト内容をメモリ確保して返す。
      • Hidemaru_GetCursorPosUnicode関数 カーソル行とカーソル桁の位置を取得。
      • Hidemaru_CheckQueueStatus関数 キー入力があるなどの理由で処理を中断するべきかを返す。
      • Hidemaru_GetSelectedTextUnicode関数 範囲選択のテキスト内容をメモリ確保して返す。
      • Hidemaru_EvalMacro関数 指定したテキストのマクロを実行。
      • Hidemaru_GetDllFuncCalledType関数 dllfunc等が呼ばれているとき、どのような呼ばれ方をしているかを取得。
      • マクロの文字列でR"(文字列)"またはR"xxx(文字列)xxx"といったエスケープなしの書き方に対応。
      • eval文追加。
      • multiselectcountキーワード追加。 複数選択時、選択されている個数を表します。
      • setcompatiblemode関数追加。setcompatiblemode文と同じ、戻り値として直前の値を返す。
      • compatiblemodeキーワード追加。setcompatiblemode の状態を示す。
  • 変更、パラメータ追加等
    • etcompatiblemode に0x00800000を追加してdisabledraw時の検索後のカーソル状態が正しくなるように修正。
    • seltopxなどで添え字を付けて複数選択の各選択の場所を得られるように修正。
    • execmacroでパラメータを配列と数で指定できる方式を追加。
    • config文のxColorCommentで指定できるものに自動判定に相当するものを追加。
    • getclipboardとgetfocusはパラメータなしの関数の書き方として呼び出してもいいように修正。
    • input関数で第1パラメータの文字数や行が多い場合ある程度ダイアログを大きくするように修正。
    • 変換モジュールまたはDLL向けの秀丸エディタへのメッセージでファイル名を取得できるHIDEMARUINFO_GETFILEFULLPATHを追加。
  • その他
    • マクロで#a=#b #c;のような記述間違いで警告を出すように修正。
    • filename3などがUnicodeを含むファイル名のときに短縮ファイル名にならない問題修正。
    • マクロの文字列で意味の無いエスケープ文字で警告を出すように修正。
    • マクロで式がおかしいときのエラーで英数字だけでなく表示できる文字はエラーのメッセージ内に表示する修正。
    • sprintf関数で64bit版の場合は%lldや%I64dなどの書き方は制限しないように修正。
    • 64bit版でマクロのビット演算子の修正。

5.23 秀丸エディタVer.8.67 マクロ関連の変更履歴

5.23.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.67

  • その他
    • 32bitの浮動小数点数版でHidemaru_GetDllFuncCalledTypeが正しくないバグ修正。
    • 64bitの浮動小数点数版でDLLの呼び出しがうまくできていないバグ修正。

5.24 秀丸エディタVer.8.69 マクロ関連の変更履歴

5.24.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.69

  • その他
    • seltopx[n]など複数選択のとき、タブ文字の計算がずれるバグ修正。
    • UTF-8のマクロファイルで$a=hex('あ');などを実行するとエラーになるバグ修正。
    • getautocompitemのバグ修正。
    • getconfig("AutocompFlag2")の誤り修正。

5.25 秀丸エディタVer.8.71 マクロ関連の変更履歴

5.25.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.71

  • 追加
    • message関数追加。
    • savebacktagjump文追加。
  • 変更、パラメータ追加等
    • message文でタイトルやフラグのパラメータを指定できるように修正。
    • geteventparamで破棄して終了による終了かどうかを知ることができるように修正。
    • event==0のときseteventnotifyで枠にフォーカスがあるときにキー操作を続行するかどうかを追加。
    • getcolormarkerで、先頭から数えて何番目にあるカラーマーカーか取得できるように修正。
    • multiselectcountで複数選択の数を取得するとき一時的な選択状態は変化させないように修正。
    • wordleft2, wordright2, wordrightsalnen2でresultは変化するように修正。
    • ascii関数で第2パラメータを指定して変換できない文字で0を返す動作を追加。
    • spellcheckdialog文で、操作結果をgetresultexで取得できるように修正。
  • その他
    • multiselectcountでBOX選択1つのときに落ちるバグ修正と、BOX選択の維持の修正。
    • 標準の変換モジュールをマクロのfilterで使うとき、マクロファイルがUnicodeの場合に文字列をうまく解釈できない場合があるバグ修正。

5.26 秀丸エディタVer.8.73 マクロ関連の変更履歴

5.26.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.73

  • 追加
    • エクスポートされた関数にHidemaru_GetCursorPosUnicodeFromMousePosを追加。
    • エクスポートされた関数にHidemaru_GetCurrentWindowHandleを追加。
  • 変更、パラメータ追加等
    • マクロでseterrormodeのパラメータを追加して、一般的なOKだけがあるメッセージを抑制するオプション追加。
    • setcompatiblemodeにdllfunc等でもPer-Monitor DPI対応で動作させるフラグ追加。
    • runex文にパラメータを追加して、ファイル名の%fなどの解釈をしない指定の対応。
  • その他
    • appendsaveのselectionオプションで折り返しがあると異常終了するバグ修正。
    • 起動オプション/x?を追加。(マクロ実行中は何もしない)

5.27 秀丸エディタVer.8.75 マクロ関連の変更履歴

5.27.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.75

  • 追加
    • dllfuncexist関数追加
    • マクロ実行するメッセージ関連を追加。(WM_ISMACROEXECUTING, WM_REMOTE_EXECMACRO_FILE, WM_REMOTE_EXECMACRO_MEMORY)
    • setoutlinesize文とoutlinesizeキーワードを追加。
    • prevposx,prevposyキーワード追加。
  • 変更、パラメータ追加等
    • savedesktop文とrestoredesktop文にパラメータを追加して仮想デスクトップごとを許可するかどうの対応。
    • message文でタイムアウトするパラメータ追加。
    • autocompstateキーワードに、英字の文字入力の直後でカーソル移動していない状態かどうかを判断するフラグを追加。
  • その他
    • run文で引数の文字数が多くて切れるようなケースではエラーとなるように修正。
    • colormarkerallfound文で見出しバーが無いとき画面全体がちらつく問題修正。

5.28 秀丸エディタVer.8.77 マクロ関連の変更履歴

5.28.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.77

  • 追加
    • アウトプット枠のHmOutputPane.dllの関数にSetBaseDirを追加。
  • 変更、パラメータ追加等
    • run文で引数も含めて約8KB分のコマンドラインを使えるように修正。
    • debuginfo 2;とするとdebuginfoでの文字列の出力はアウトプット枠にも出力するように修正。
    • setdlldetachfuncで指定して呼ばれる関数に、どのような理由で呼ばれたかを表すパラメータを追加。
  • その他
    • showvarsで配列の角括弧の後半が無い問題修正。
    • マクロの文の記述に半角括弧を使った場合のエラーメッセージがおかしい点を修正。

5.29 秀丸エディタVer.8.79 マクロ関連の変更履歴

5.29.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.79

  • 追加
    • deletefilehist文、filehistcountキーワード追加。
  • 変更、パラメータ追加等
    • setfilehistで、失敗したときはresultで判断可能なように修正。
    • openbyshellで「microsoft-edge:」から始まる文字列でEdgeが起動できない問題修正。
    • openbyshellで「"shell:~"」から始まる文字列で、続いてパラメータが付加されているときの対応。
  • その他
    • マクロ登録ダイアログをリストビュー形式に変更。
    • マクロ登録ダイアログのマクロファイル用のフォルダに開くボタンを追加。
    • grepの実行/grepして置換のキー操作の記録はgrepdialog2/grepreplacedialog2として記録されるように修正。

5.30 秀丸エディタVer.8.81 マクロ関連の変更履歴

5.30.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.81

  • 追加
    • movetoview文
    • xviewキーワード
    • carettabmodeキーワード
    • Shiftキーを押しながら矢印キーを押すことに相当する文を追加。(shiftup, shiftdown, shiftleft, shiftright)
  • 変更、パラメータ追加等
    • 起動オプション「/m3x」で既存の秀丸エディタに切り替わるとき、/xの組み合わせで/aの情報も引き継ぐように修正。
  • その他

5.31 秀丸エディタVer.8.83 マクロ関連の変更履歴

5.31.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.83

  • 追加
    • filtermenu文
  • 変更、パラメータ追加等
    • setstaticvariable文で現在の秀丸エディタ用は32KBまでできるように修正。
    • colormarker文で任意の名前のレイヤーは32個までできるように修正。
    • selectcolormarker文にユーザーデータの指定のパラメータを追加。
    • config文の"x"で指定できるものにActiveTagPairを追加。
    • closenewしたときは動作環境の最初のフォルダの設定は働かないように修正。(newfileは従来から働かない)
    • setstaticvariableで個数の上限を超えたとき正しく失敗するように修正。
    • openregにパラメータを追加し、HKEY_LOCAL_MACHINE\SOFTWARE配下を明示的に32bit/64bitを指定できるように修正。
  • その他

5.32 秀丸エディタVer.8.85 マクロ関連の変更履歴

5.32.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.85

  • 追加
    • ファイルマネージャ枠のマクロのdllfuncstr用の関数で、HmExplorerPane.dllにGetCurrentDirを追加。
    • replaceallquick文
    • foundlist文
    • foundlistoutline文
  • 変更、パラメータ追加等
    • getcolormarker 関数で、第1パラメータに0x0100のフラグを追加し、表示に使われている名前付きレイヤーの情報を取得できるように修正。
    • insert文の第3パラメータでインデントの詳細設定を指定できるように修正。
    • selectcolormarkerで対象が無い場合にresultが変化するように修正。
    • menu文などのサブメニューの記述対応。
    • input関数に位置を指定するパラメータ追加。
  • その他
    • seterrormodeの指定でcallでラベルが見つからないときにエラーを無視できるように修正。

5.32.2 【2】仕様変更 - 「秀丸エディタ」Ver.8.85

  • マクロファイル用のフォルダと設定ファイル用のフォルダは、インストール直後の初期状態は%APPDATA%という環境変数を使って表現するように変更。
  • マクロ実行中はautocomplete -1;による操作はリアルタイム入力は無効となるように変更。

5.33 秀丸エディタVer.8.86 マクロ関連の変更履歴

Ver.8.86は、マクロ関連の変更はありません。

5.34 秀丸エディタVer.8.87 マクロ関連の変更履歴

5.34.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.87

  • その他
    • Ver.8.85、Ver.8.86で、runsync文の待機中にしばらくすると待機が終わる問題を修正。

5.35 秀丸エディタVer.8.88 マクロ関連の変更履歴

5.35.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.88

  • 追加
    • keypressedex 関数
    • tabcolumn キーワード
  • 変更、パラメータ追加等
    • inputchar関数で、第2パラメータでタイムアウトを指定できるように修正。
    • inputchar関数で、第3パラメータを指定して、タイトルを変更しないこともできるように修正。
    • selectcolumn文で行の範囲のパラメータ追加。
    • overwrite文のパラメータ追加。
    • getregstrでレジストリのMacroPathを取得する場合や、backupdirでフルパスとなる組み合わせの場合など、環境変数が展開可能な条件では自動的に展開されたものが取得されるように修正。
  • その他
    • マクロに書く固定の文字列の長さの最大は64KBから128KBまでに変更。
    • runexで表示フラグで非表示を指定の場合は、実行後に秀丸エディタ本体を再アクティブにしないように変更。
    • config "xAutoAdjustOrikaeshi:0";で折り返しを固定にするとき、ウィンドウ幅や最大による現在の折り返しではなく、記憶されていた固定の折り返し文字数となるように変更。

5.35.2 【2】仕様変更 - 「秀丸エディタ」Ver.8.88

  • filter文/filter関数で変換モジュールが見つからない場合や、指定された関数がみつからない場合に、 filter文では、デフォルトでエラー表示し、エラーが出ない場合やfilter関数では、getresultexで取得可能にした。
  • filter文で、変換モジュール名が拡張子なしの場合、[動作環境]→[編集]→[変換]で登録されていたフルパスを読み込むように修正。 (登録済みのモジュール内に、マッチするものがあればそれを使うようにした)
  • setfiletypeでファイルタイプを変更している場合、新規作成状態の名前を付けて保存のデフォルトの拡張子は、 setfiletypeで指定したものとなるように変更。
  • 起動オプション/rr /bbを追加。(それぞれ/r /b 相当でファイルを閉じるまでは維持するモード)

5.36 秀丸エディタVer.8.89 マクロ関連の変更履歴

5.36.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.89

  • 追加

    • split 関数
  • 変更、パラメータ追加等

  • その他

    • ファイルタイプ別の設定のデザインの「カーソル位置の単語」がONのとき、colorcodeでカラーマーカーの0x8000が取得できない問題修正。
    • openbyshellでUnicode独自の文字が含まれる場合の対応
    • マクロの変数格納の速度の改善
    • マクロのconfig "s数値"で、サイズ変更した後にフォンとサイズの記憶状態がおかしい場合がある問題修正。
    • 自動起動マクロのカーソル移動後タイマーのgeteventparam(4)は、検索ダイアログで上検索/下検索したときも取得できるように修正。
    • config文でフォントを変更してsaveconfigするとき、Unicodeのファイルで記憶されない問題修正。
    • カーソル移動後タイマーの自動起動マクロで、geteventparam(5)で最後に実行した上検索/下検索が成功していたかを取得できるように修正。

5.36.2 【2】仕様変更 - 「秀丸エディタ」Ver.8.89

  • 「hilightファイル直接指定モード」を追加

5.37 秀丸エディタVer.8.90 マクロ関連の変更履歴

5.37.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.90

  • 追加
    • setsplitinfo 文
    • prevposhistback prevposhistforward 文(「前のカーソル位置(戻る)」「前のカーソル位置(進む)」コマンドに相当する)
    • settabstop 文
    • gettabstop 関数
    • Hidemaru_AnalyzeEncoding 関数(DLL側から呼び出す秀丸エディタの関数)
    • Hidemaru_LoadFileUnicode 関数(DLL側から呼び出す秀丸エディタの関数)
    • outlineitemcount キーワード
    • getoutlineitem 関数
  • 変更、パラメータ追加等
    • setcompatiblemode でマクロ実行中にカーソル行の下線や縦線を描画できるフラグを追加。
    • saveconfig 文のパラメータで指定した設定名で保存できるように追加。
    • gettitle の第2パラメータを追加して、他の秀丸エディタからの取得もできるように修正。
    • clearallmark 文のパラメータ追加。1で「現在のファイルのマークを解除」を行う。
    • showvars も debuginfo で 2 を指定している場合はアウトプット枠へ出力するように修正。
    • codepageキーワードのUTF-32は12000(UTF-32LE)と12001(UTF-32BE)に変更。
  • その他
    • eplayキーワードがsearchdownの後におかしい問題修正。
    • configset文でステータスバーのファイルタイプ別の設定の状態が更新されるように修正。

5.37.2 【2】仕様変更 - 「秀丸エディタ」Ver.8.90

  • 強調表示の文字列の上限を3999文字までに拡張

5.38 秀丸エディタVer.8.91 マクロ関連の変更履歴

5.38.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.91

  • 変更、パラメータ追加等
    • colormarkerallfound でスタイルが指定できるように修正。
    • setsearch で追加の条件(0x00800000)がOFFにならない問題修正。
  • その他
    • 浮動小数点数バージョンでshowvarsの数値が出力されていなかった問題の対策として、小数点数以下3桁まで表示するように修正。

5.39 秀丸エディタVer.8.92 マクロ関連の変更履歴

5.39.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.92

  • 追加
    • findmarkerlist 文
  • 変更、パラメータ追加等
    • colormarkerallfound パラメータで範囲を指定できるように修正。
    • colormarker 種類フラグ 0x10のビットで、改行以降の余白にも背景色を指定できるように修正。
    • split関数 区切り文字に""を指定して一文字ずつに分割に対応。
    • openfile文 複数ファイル指定のときはファイル検索パスは働かないようにして、getresultex(20)と(21)を追加。
    • colormarker文、colormarkerallfound文で、種類のパラメータの上位16ビットで強調表示としての動作とできるように修正。
    • colormarkerallfoundでレイヤー付きの場合は検索の色付け一覧ダイアログには入れないように修正や、範囲指定時にうまくいかない問題などの修正。
    • openfile用のseterrormodeの値を追加して、ファイルが無い場合の問い合わせ、ファイル検索パスの問い合わせを指定できるように修正。 getresultex(22)の追加。
    • setcompatiblemode 0x08000000;で、他の秀丸エディタへマクロ切り替え禁止の動作の追加。
    • setcompatiblemode 0x04000000;で、execmacroのメモリ上の再利用の追加。
    • exemacroの拡張子を.mac.cacheにするとキャッシュファイルの自動生成のとなる動作の追加。
    • colormarker文の種類で強調表示の指定をしてるとき、ファイルタイプ別の設定の複数行コメントが「なし」でも動作するように修正。
    • colormarker文の種類で強調表示の指定をしてるとき、同じレイヤーでの上書きで強調の優先順位の適用と、特に強調で上書きしたときでもコメントや文字定数の判定ができるような修正など。
  • その他
    • マクロのinsertで強調表示がおかしいバグ修正。

5.39.2 【2】仕様変更 - 「秀丸エディタ」Ver.8.92

  • 強調表示の文字列の上限を3999文字までに拡張

5.40 秀丸エディタVer.8.93 マクロ関連の変更履歴

Ver.8.93は、マクロ関連の変更はありません。

5.41 秀丸エディタVer.8.94 マクロ関連の変更履歴

5.41.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.94

  • 追加
    • getmaxinfo関数
    • encodeuri関数
    • decodeuri関数
    • getlinecount関数
    • mouselineno キーワード、mousecolumn キーワード(カーソルがエディタ画面範囲外の場合は-1)
    • convert_return_in_cell文
  • 変更、パラメータ追加等
    • searchdown等にinselect2のオプションを追加。
    • gettext関数、gettext2関数で改行を\nとして取得するパラメータ追加。
    • getoutlineitemの行番号が、分類モードでうまく取得できないバグ修正。
    • setstaicvariableでUnicode独自文字が覚えられない問題修正。
  • その他
    • HmJre.dll V5.09

5.41.2 【2】仕様変更 - 「秀丸エディタ」Ver.8.94

  • 検索ダイアログの「選択した範囲内のみ」を「選択した範囲」に変更して、[行単位]/[文字単位]を追加。
  • [その他]→[動作環境]→[環境]や[パフォーマンス]からの詳細設定の項目を増やして、クリップボード履歴の個数、静的変数の上限を追加。
  • ブックマークやプロジェクトの項目のパスの先頭に「mac:」と書くとマクロ実行用のファイルとして動作するように修正。

5.42 秀丸エディタVer.8.95 マクロ関連の変更履歴

5.42.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.95

  • 変更、パラメータ追加等
    • setstaticvariable/getstaticvariable で Ver.8.94 で数値を扱えるようになっていたのをやめて、従来通り文字列だけとなるように修正。

5.43 秀丸エディタVer.8.96 マクロ関連の変更履歴

5.43.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.96

  • 追加
    • ucs4len、ucs4leftstr、ucs4rightstr、ucs4midstr、ucs4strstr、ucs4strrstr、ucs4index_to_charindex、charindex_to_ucs4index
    • moveto_wcs, moveto_ucs4などの各種UCS-2/UCS-4単位の文、cmulenやmoveto_cmuなどのカーソル移動単位、gculenやmoveto_gcuなどの、書記素クラスター単位の文/キーワード/関数の追加
  • 変更、パラメータ追加等
    • split -1;のパラメータで動作環境による自動判定を追加。
    • charcount関数で第2パラメータで対象文字列を指定可能にする対応と、0x00000088でカーソル移動単位の指定の追加。
    • fontmodeで結合文字やカラー絵文字の設定状態の取得の追加。
    • title文のUnicode対応。
  • その他
    • gettextでカラー絵文字の末尾で範囲がずれる問題修正。

5.43.2 【2】仕様変更 - 「秀丸エディタ」Ver.8.96

  • createobjectで管理者によるRegSvr32やRegAsmの登録なしに、DLLファイル名でCOMオブジェクトを作成できるように修正。

5.44 秀丸エディタVer.8.97 マクロ関連の変更履歴

5.44.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.97

  • 変更、パラメータ追加等
    • evalでsetcompatiblemodeは現在の状態を引き継ぐように変更。
  • その他
    • filtermenu文がマクロ開始後1秒以上経過するとうまく動作しない問題修正。
    • 浮動小数点数版のsetfloatmode 1;でnewfileやsetactivehidemaruで実行対象が切り替わると状態がリセットされる問題修正。(setfloatmodeの状態を維持するように変更)
    • createobjectのアウトプロセスサーバーがうまく動作しない問題修正。(Ver.8.96)
    • .net 5で作成したCOMサーバーでcreateobjectに失敗する問題の対策。(VEr.8.96以前からある問題)

5.44.2 【2】仕様変更 - 「秀丸エディタ」Ver.8.97

  • 「すべてを選択」コマンド実行時に直前の位置を「前のカーソル位置」として覚えるように修正
  • キー操作の記録で「指定行...」で入力した行番号を記録するように修正。

5.45 秀丸エディタVer.8.98 マクロ関連の変更履歴

5.45.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.98

  • 追加
    • sendmessage 文
    • OutputW 関数(HmOutputPane.dllのdllfuncw用の関数)
    • setcomdetachmethod 文
    • Hidemaru_DebugInfo 関数(DLL側から呼び出す秀丸エディタの関数)
    • keepdll 文
    • selectinselect、setinselect2
    • enumregkey
    • updatecount キーワード
    • 「列の幅の自動調整を一時停止」コマンドに相当する refreshtabstop_pause 文
    • 「列の幅を全て狭める」コマンドに相当する refreshtabstop_shrink 文
    • 「この列のテキスト幅揃えを更新」コマンドに相当する refreshtabstop_current 文
    • tabcolumnmax キーワード
  • 変更、パラメータ追加等
    • keepobjectの第2パラメータの1は、2と同等となるように変更。
    • deletecolormarkerでレイヤー名がまだ無いときに範囲を指定すると異常終了する問題修正。
    • gettitle(3,#handle)で取得できない場合がある問題修正。
    • createobjectでファイル名指定した場合にファイルを開いたままにならないように修正。
    • colormarker文で強調表示としての振る舞い指定に「数値」を追加。
    • setcomdetachmethodで呼ばれるメソッドは数値パラメータに呼ばれる理由を指定して呼ぶように修正。
    • Hidemaru_EvalMacroでマクロの文法上のエラーなどのとき、返り値にFALSEを返すように修正。
    • keepdllで0を指定するときはsetdlldetachfuncの関数の後にFreeLibraryでDLLを解放するように修正。
    • linelenやlinelen2等に、[]を付けて指定した行の情報を得られるように修正。
    • charcountは0x7fffffffまでに制限するように変更。
    • prevposxがプロポーショナルフォントのときに正しくない問題修正。
    • 「単語の検索の状態を覚える」がOFFのとき、grepdialog2文の0x0001のビット指定が効かない問題修正。
  • その他
    • autocompstate & 0x0004でマクロ実行と同時に単語補完が消えたかどうかを判定可能なフラグを追加。
    • loaddllやkeepobjectを使った後の場合は、瞬間起動のためにプロセスの再利用をしないように修正。
    • 複数選択時のoverwrite文(setcompatiblemode 0x00100000;の状態)ができない問題修正。
    • creatobjectでCOMオブジェクト作成時、bool X64MACRO()というメソッドがあって0以外を返す場合、
    • そのCOMオブジェクトの数値パラーメータは64bit版では64bitの数値を渡すようにした。
    • COMオブジェクトの返り値がいわゆるSafeArrayのときに自動的にオブジェクトに変換するように修正。
    • 除算の最小値/-1でオーバーフロー扱いにしてマクロ停止するように修正。

5.45.2 【2】仕様変更 - 「秀丸エディタ」Ver.8.98

  • マクロでコンパイル可能なメモリの上限を増やした。
  • 文字数計算ダイアログの32bitより大きい数の対応

5.46 秀丸エディタVer.8.99.1 マクロ関連の変更履歴

5.46.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.99.1

  • その他
    • toupper、tolowerでUnicodeの特定文字で文字幅(固定幅で全角か半角)の状態がおかしい問題と、大文字のアルファ(U+0391)が変換できないバグ修正。

5.47 秀丸エディタVer.8.99.2 マクロ関連の変更履歴

5.47.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.99.2

  • その他
    • openfile ""; で新規作成になっていなかった問題修正。
    • replacedialogで置換文字列の指定ができていない問題修正。
    • searchdown等のinselect2が事前のsettargetcolormarkerでうまく動作しない問題修正。
    • replaceallquickで複数選択で動作させると異常終了する問題修正。

5.48 秀丸エディタVer.8.99.3 マクロ関連の変更履歴

5.48.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.8.99.3

  • その他
    • setmenudelay, setsplitinfo, settabstop があるとcallのラベルへのジャンプやif文がうまくいかない問題修正。

5.49 秀丸エディタVer.8.99.4 マクロ関連の変更履歴

Ver.8.99.4は、マクロ関連の変更はありません。

5.50 秀丸エディタVer.9.00 マクロ関連の変更履歴

5.50.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.00

  • 追加
    • getgrepfilehist 関数
    • keepdde 文
    • enumregvalue
    • 大文字の FIND文 を追加して、「検索...」コマンド相当ですぐマクロを終了するものを追加。
  • 変更、パラメータ追加等
    • setstaticvariable/getstaticvariable で2を指定して、ファイルを閉じる/閉じて開く操作をしても維持できるモードを追加。
    • setbackgroundmode で動作中のときの中断で、「中断処理中です。」と出ているときでも強制中断できる選択肢を追加。
  • その他
    • tabcolumnmax キーワード が正常に動作していなかったのを修正
    • toupper、tolowerで Unicode の特定文字で文字幅(固定幅で全角か半角)の状態がおかしい問題と、大文字のアルファ(U+0391)が変換できないバグ修正
    • searchdown 等の inselect2 が事前の settargetcolormarker でうまく動作しない問題修正。
    • replacedialog で置換文字列の指定ができていない問題修正。
    • replaceallquick で複数選択で動作させると異常終了する問題修正。
    • TSV/CSVモードの settabstop で横スクロール可能な上限が更新されない問題修正。
    • setmenudelay,setsplitinfo,settabstopがあるとcallのラベルへのジャンプやif文がうまくいかない問題修正。

5.50.2 【2】仕様変更 - 「秀丸エディタ」Ver.9.00

  • disabledrawでタイトルやメニュー等の描画もしないように変更。
  • openbyshellで、動作環境でブラウザを指定している場合、範囲選択した内容でも適用するように変更。
  • openfileでオプションでない単一のファイル指定であってもダブルクォーテーションでくくる書き方に対応。

5.51 秀丸エディタVer.9.10 マクロ関連の変更履歴

5.51.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.10

  • 追加
    • return_in_cell_modeキーワード追加
  • 変更、パラメータ追加等
    • setcompatiblemode 0x20000;では、カラーマーカーの対象も復元するように修正。
    • input関数の第3パラメータで、0x100で複数行入力を可能にした。
    • colormarker文のRGB値を "#ffffff" といった感じのRGB順の文字列でもできるように修正。
  • その他
    • basename3が取得できない問題修正。
    • Webブラウズモードで260文字を超えるURLでもfilename2で取得できるように修正。

5.51.2 【2】仕様変更 - 「秀丸エディタ」Ver.9.10

  • カレントフォルダ移動しない設定であっても、runsync runsync2 で実行したプログラムのカレントフォルダはファイルのあるフォルダとなる互換を維持するように修正。
  • updatecount は検索したときは上がらないように修正。

5.52 秀丸エディタVer.9.11 マクロ関連の変更履歴

5.52.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.11

  • その他
    • tabcolumnmax キーワード が正常に動作していなかったのを修正

5.53 秀丸エディタVer.9.12 マクロ関連の変更履歴

5.53.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.12

  • 追加
    • refcall 文
    • join 関数
    • getfiletime 関数
    • setregularcache 文
    • disabledraw2 文
    • darkmode キーワード
  • 変更、パラメータ追加等
    • config文で指定できるものに xHilightTitle, xHilightDirectWord, xHilightDirectMulti, xHilightDirectIfdef を追加
    • setstaticvariableの種類の-1の指定で一時的な制限の無い変数の出し入れを追加。
    • getconfig関数の"RulerColor"が「文字と同じ」、"RulerBack"が「背景と同じ」の場合は、空の文字列を返すように修正。
  • その他
    • basenameの角括弧の添え字ができないバグ修正。
    • configcolor文の65~66番や色の指定方法の追加と、ヘルプに書かれていなかった番号の不足分を追記。(65でカーソル色、66でルーラー色)
    • message文で文字が多すぎてウィンドウが出ない場合の対策。
    • getconfig("Tab")でマイナス値の取得が64bit整数版でできなかった問題修正。
    • 単語補完にテンプレート(スニペット)が含まれる場合、autocomplete 文でのマクロの直接選択はできないように修正。

5.53.2 【2】仕様変更 - 「秀丸エディタ」Ver.9.12

  • callのネストの上限を200から150に変更。(内部的な都合)

5.54 秀丸エディタVer.9.13 マクロ関連の変更履歴

【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.13

5.54.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.13

  • その他
    • Ver.9.12で、setactivehidemaru使用時に文字列変数がおかしくなる場合がある問題修正。

5.55 秀丸エディタVer.9.14 マクロ関連の変更履歴

Ver.9.14は、マクロ関連の変更はありません。

5.56 秀丸エディタVer.9.15 マクロ関連の変更履歴

【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.15

5.56.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.15

  • 追加
    • stophistory キーワード
    • regulardll キーワード
    • lastupdatedx キーワード
    • lastupdatedy キーワード
  • 変更、パラメータ追加等
    • template 文で、パラメータでファイル名明示指定して実行できるようにした。
    • getresultex(25) を追加して起動数の上限のエラーが発生したかどうかを取得可能にした。
    • setfilehist で、カーソル位置の自動復元の位置を指定するパラメータ追加。
    • findmarkerlist文で色などを取得パラメータを追加。
    • getmaxinfo の検索文字列などの上限は4094となるように変更。
  • その他
    • localgrepで設定の組み合わせによってgrep結果の先頭にUTF-16のBOM相当の文字が挿入される問題修正。
    • マクロ実行のダイアログで、ファイル名を "" でくくったばあいの対応を追加。
    • Hidemaru_GetStaticVariable, Hidemaru_SetStaticVariableを追加

5.57 秀丸エディタVer.9.16 マクロ関連の変更履歴

【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.16

【2】仕様変更 - 「秀丸エディタ」Ver.9.16

5.57.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.16

  • 追加
    • up_nowrap、down_nowrap文追加(「カーソル上(折り返し無視)」「カーソル下(折り返し無視)」コマンド)。
    • browsefile関数
    • strreplace関数
  • 変更、パラメータ追加等
    • eventの値 9の追加と、geteventparam で直前の選択内容の取得を追加。
    • scrolllink文で自分自身を指定できないように修正。
    • openfile等のエンコードの種類で数値の指定も対応。
    • eval内でsetcompatiblemode 0x20000したときは、evalの外で検索文字列を復帰するように変更。
    • split関数で一文字ずつの文字列分割でサロゲートペアは割れないように変更。
  • その他
    • setstaticvariableで全部消去のパラメータ指定ができていなかった問題修正。
    • colormarker文などの文字列のRGB指定がうまくいかない場合がある問題修正。
    • ダークモードでgettitle(1)ができないバグ修正。

5.57.2 【2】仕様変更 - 「秀丸エディタ」Ver.9.16

  • マクロ実行で最初のメモリ確保でエラーになったときそれ以上続行しないように修正。

5.58 秀丸エディタVer.9.17 マクロ関連の変更履歴

【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.17

5.58.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.17

  • その他
    • execmacroで相対パス指定時の互換の動作の修正。

5.59 秀丸エディタVer.9.18 マクロ関連の変更履歴

Ver.9.18は、マクロ関連の変更はありません。

5.60 秀丸エディタVer.9.19 マクロ関連の変更履歴

秀丸エディタ本体の更新内容に関しては、秀丸エディタ Ver9.19の変更点を参照してください。

【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.19

【2】仕様変更 - 「秀丸エディタ」Ver.9.19

5.60.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.19

  • 追加
    • jsmode 文
    • execjs 文
    • JavaScriptの名前変更に対応する文を従来のマクロでもできるように追加。 escapeselect、 find1、replace1、del 等
    • currentjsfilename キーワード
    • inputstates キーワード
    • gettotaltext()、getlinetext()、getselectedtext() 関数
    • KEYASSIGN 文
    • EDITMENU 文
    • hidemaruversion 文
    • switchregular、switchword、switchcasesense 文
  • 変更、パラメータ追加等
    • encodeuri 関数で数字を変換しないように修正。
    • setfilehist で -2 を指定したときうまくいかない問題修正。
    • browsefile 関数で新規作成時の問い合わせを出すように修正。
    • colormarker 文で json 指定を追加
    • setsearchhist で先頭に挿入するパラメータ追加
    • colorcode で幅ゼロのカラーマーカーの取得の情報も追加。
    • disabledraw2 に対する enabledraw でも縦スクロール位置のパラメータは有効に変更。
    • config "xStripe:+";でストライプ表示ONも可能にした。
  • その他
    • split関数がUTF-8のマクロファイルで全角文字などのとき、うまく動作しない問題修正。
    • runsync の終了判断がうまくいかない場合がある問題修正。
    • setbackgroundmode 時はタブモードの切り替えはできないように修正。
    • マクロの """~""" の文字列対応。
    • escape 文などが裏で実行されるとフォーカス消失する問題など修正。

5.60.2 【2】仕様変更 - 「秀丸エディタ」Ver.9.19

  • js{}内の記述でマクロ上のJavaScriptの書き方に対応。
  • HideMath.dllを通常版でも標準付属。
  • マクロファイルはBOMなしUTF-8ファイルでも自動認識できるように修正。
  • タブモードでtitle -1したウィンドウのfindwindowによる検索は、非タブモード互換の動作で、タブ内の仮想的なタイトルバーを検出可能にするように修正。

5.61 秀丸エディタVer.9.20 マクロ関連の変更履歴

【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.20

【2】仕様変更 - 「秀丸エディタ」Ver.9.20

5.61.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.20

  • 追加
    • [javascript]hidemaruオブジェクトに sendMessage、getCursorPos、getCursorPosFromMousePos を追加。
    • setselectionrange 文追加。
    • getselectedrange 関数追加。
    • hidemaruversionキーワード追加。
    • [javascript]Stdioオブジェクトに flushメソッド、flushedプロパティ追加
  • 変更、パラメータ追加等
    • setsplitinfoでスクロールの絶対位置を指定できるように追加。
    • getcolormarkerでJSONまたはオブジェクト指定されたプロパティのみフィルタリングして取得できるように修正。
    • colormarker の強調指定で especially1 の指定ができない、getcolormarker で先頭からの順番取得などうまくいかない点や、jsでなくてもスタイルの文字列など修正。
    • gettitleでタブ名の取得がうまくいかない場合がある問題修正。
    • getfiletimeの書式で令和がおかしい問題修正。
    • [javascript]jsで非同期の関数でhidemaruGlobalができないときのエラーをdebuginfoの出力にも出すように修正。(JScriptのみ)
    • getresultex(26);でファイル保存後のエラーコード取得の追加と、エラー時のタブの更新など。
    • platformキーワードでプライベートモードかどうか判別できるように修正。
    • autocommstateにツールチップの情報取得追加。
    • writeregnumでMenuBarという値名でメニューバー相当のExEnv2バイナリ値にリダイレクトするように修正。
  • その他
    • colormarker文で行の強調3としての指定がうまくできなかった問題修正。
    • getcolormarkerでcolorcodeやuserdataのフィルタリングの調整。
    • getcolormarkerのJSON指定で"userdata"が取得できていなかった問題修正。
    • jsmode "WebView2"の後のopenfileなどでマウスカーソルが消えたままになる問題修正
    • input関数で複数行のときのダイアログのサイズの修正。

5.61.2 【2】仕様変更 - 「秀丸エディタ」Ver.9.20

  • プログラム実行などのコマンドライン文字列の8KBまでの対応
  • ブックマークのパスで「js:~」と書くと「mac:js{~}」と同等にJavaScriptの実行できるように修正。
  • 起動オプション/rrの後の再読み込みで状態が維持されるように修正。
  • デスクトップ保存で閲覧モード、/rr、/bbの情報も保存するように修正。

5.62 秀丸エディタVer.9.21 マクロ関連の変更履歴

【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.21

5.62.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.21

  • その他
    • Ver.9.20でマクロ登録の反映後に落ちる問題修正。
    • getlinetextで折り返しがあると最後行が取得できない問題修正。
    • refcallで呼んでいる中でexecmacroすると参照の変数ができない問題修正。
    • decodeuriで%が無い場合やencodeuriされた文字でない場合の問題修正。

5.63 秀丸エディタVer.9.22 マクロ関連の変更履歴

秀丸エディタ本体の更新内容に関しては、秀丸エディタ Ver9.22の変更点を参照してください。

【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.22

【2】仕様変更 - 「秀丸エディタ」Ver.9.22

5.63.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.22

  • 追加
    • config、configcolor、getconfig、getconfigcolorのJSON記述対応
    • setbrowserpanetarget文、showbrowserpane文、refreshbrowserpane文、browserpanehandleキーワード、setbrowserpaneurl文、 browserpaneurlキーワード、setbrowserpanesize文、browserpanesizeキーワード、browserpanecommand文/関数
    • renderpanecommand文/関数
    • setrenderpanetarget文、registercallback関数、registercallback に対する event
    • endmacro_postcommand、keyhook、clearkeyhoook
    • xpixel2、ypixel2
    • keyhook に対する event と geteventparam
    • [JavaScript]hidemaru.saveTextFile
    • [JavaScript]hidemaru.setInterval、hidemaru.clearInterval
    • [JavaScript]hidemaru.getPixelPosFromCursorPos
    • [JavaScript]console.warnを独自に実装
  • 変更、パラメータ追加等
    • menu文でサブメニューとなって項目が多くて画面からはみ出るとき、ダークモードで多段になっていたのをやめてスクロールに変更。
    • getselectedrangeを選択していないときに呼ぶと選択される場合がある問題修正。
    • forwardtab、backtabで数値指定の追加。
    • eventに10を追加。
    • disabledraw2でのenabledrawで横スクロール位置指定不足の対応。
  • その他
    • decodeuriで%が無い場合やencodeuriされた文字でない場合の問題修正。
    • refcallで呼んでいる中でexecmacroすると参照の変数ができない問題修正。
    • getlinetextで折り返しがあると最後行が取得できない問題修正。
    • iskeydownの処理改善。
    • setTimeoutなどでメモリリークの修正。
    • freedllで余計に解放していたバグ修正

5.63.2 【2】仕様変更 - 「秀丸エディタ」Ver.9.22

  • マクロファイルはUTF-8やUTF-16でなければ、欧文ファイル上の欧文マクロファイルの動作は廃止して、Shift_JIS解釈に固定に変更。
  • hidemaru.exeの終了コードは特に理由が無ければ0で固定となるようにした。

5.64 秀丸エディタVer.9.23 マクロ関連の変更履歴

【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.23

【2】仕様変更 - 「秀丸エディタ」Ver.9.23

5.64.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.23

  • その他
    • マクロでrefcallと複数の秀丸エディタでの使用で落ちる問題修正。
    • マクロの中断具合の調整。

5.64.2 【2】仕様変更 - 「秀丸エディタ」Ver.9.23

  • 起動オプション/fの改行やBOM指定などの追加。(新規ファイル時)

5.65 秀丸エディタVer.9.24 マクロ関連の変更履歴

【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.24

5.65.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.24

  • その他
    • 個別ブラウザ枠にフォーカスがあるときにWebView2のマクロ実行で操作できなくなるバグ修正。
    • マクロ実行中にマクロ実行できない警告で、ブックマークやプロジェクトのmac:でチェックされていなかった問題修正。

5.66 秀丸エディタVer.9.25 マクロ関連の変更履歴

【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.25

【2】仕様変更 - 「秀丸エディタ」Ver.9.25

5.66.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.25

  • 追加
    • execeventmacro 文
    • [JavaScript]hidemaru.createHttpServer
    • [JavaScript]hidemaru.isProcessIdValid
    • getimecandidatelist 関数
    • shifthome 文
    • shiftend 文
  • 変更
    • input関数で、サイズを指定するパラメータ追加
    • browserpanecommandで、各種不足していた操作など追加
    • prevposx、prevposyで、引数に-1を追加。
    • HmOutputPane.dllの関数にClear()追加
    • getfocus、setfocusでブラウザ枠の番号追加。
    • browserpanecommand の"copy"で、ブラウザ枠内で範囲選択している箇所をコピー可能にした。
    • [JavaScript]hidemaru.setTimeout、hidemaru.setInterval のパラメータ3追加。
  • その他
    • inputstatesでマウスを動かしたときも入力と判断されやすくするように調整。
    • grepfolderbufferがif文で飛ばせない問題修正。
    • 自動起動マクロの[ファイルを閉じる直前]で、保存の問い合わせ中に再度自動起動マクロが働かないような対策。
    • postExecMacroMemoryでautocompleteの同期を出すときの修正。
    • insert(数字)ができなくなっていた問題修正。
    • getcolormarkerで範囲に絞り込むときの位置がずれているバグ修正。
    • loaddllで64bit版での32bit DLLが設定をONにしていてもできなかったバグ修正。

5.66.2 【2】仕様変更 - 「秀丸エディタ」Ver.9.25

  • 起動オプション/fの改行やBOM指定などの追加。(新規ファイル時)

5.67 秀丸エディタVer.9.26 マクロ関連の変更履歴

Ver.9.26は、マクロ関連の変更はありません。

5.68 秀丸エディタVer.9.27 マクロ関連の変更履歴

【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.27

5.68.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.27

  • その他
    • question文でEscで[いいえ]になっていなかったのを再びできるように修正。
    • closehidemaruがうまくいかない場合がある問題修正。

5.69 秀丸エディタVer.9.28 マクロ関連の変更履歴

【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.28

5.69.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.28

  • その他
    • closehidemaruがうまくいかない場合がある問題修正。

5.70 秀丸エディタVer.9.30 マクロ関連の変更履歴

【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.30

【2】仕様変更 - 「秀丸エディタ」Ver.9.30

5.70.1 【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver.9.30

  • 追加
    • [JavaScript]hidemaru.runProcessのProcessInfoオブジェクトにonCloseメソッド追加
  • その他
    • getconfigで"cl"を指定するとカーソル行OFFだったのがONになってしまう問題修正。

5.70.2 【2】仕様変更 - 「秀丸エディタ」Ver.9.30

  • キー操作の保存でShiftを押しながらのときは"""の文字列の形式にしてみる。(暫定)
  • [次の検索色付け]/[前の検索色付け]コマンド追加。

6 第IV部~テキスト編集を極める!!

6.1 ●正規表現について

6.1.1 【5】 (補足) 秀丸上での複数行にまたがる検索について

説明追加

hmjre.dllは、"$"が、テキストの途中に現れる"\n"にもマッチします。その為、ファイル2にもマッチします。また、秀丸エディタ Ver.8より、正規表現中に、(?#maxlines:数値)という形式で、正規表現DLLに渡す行数を指定できます。 (正規表現のコメント形式に基づく指示なので、検索には影響しない。)

6.2 ●タグ付き正規表現とは?

6.2.1 【2】区切り記号の入れ方

説明追加

hmjre.dllでは、タグ付き正規表現はPerlと同じく、括弧「()」を使用します。(V1.69より(秀丸エディタVer5.03以降))

"\f"でのタグ指定は、現状(2015/06/03)でも有効ですが、内部処理的には、かなり面倒なことをやっているので、使わないほうがいいです。タグ付き正規表現に対応していない「jre32.dll」や「hmjre.dll(V1.69未満)」で、どうしてもタグ付き正規表現を使いたい場合以外は、 "\f"を使うメリットはないです。(検索パターンにもよりますが、最低でも15~20%程度遅くなる。)

"\f"と、括弧を使ったタグ指定の整合性をとるために、hmjre.dllのタグ指定には、制限があります。タグ付き正規表現(hmjre.dll 括弧での指定)を参照。

また、"\f"を使った場合、検索文字列内でのタグ参照はできません。

例)検索文字列: ..\f-\0

正規表現が有効で、検索に"\f"が含まれる場合、タグの処理は秀丸エディタ本体が行います。検索に"\f"が含まれない場合、括弧によるタグの処理は、正規表現DLLで行われます。 "\f"と括弧が混在するタグ指定は出来ません。混在した場合は、秀丸エディタ本体で"\f"を処理する都合上、"\f"が優先され、括弧は無視されます。

7 正規表現関連

7.1 正規表現エンジン

2019/08/31 正規表現スピードチェック実行結果を更新

64bit対応について

マクロ用DLLと異なり、正規表現エンジンは、使用する秀丸エディタと同じbitのDLLしか使えません。

  • 64bit 秀丸エディタの場合、正規表現DLLは、64bitのDLLしか使用できない
  • 32bit 秀丸エディタの場合、正規表現DLLは、32bitのDLLしか使用できない

64bit対応しているのは、hmjre.dll、hmonig.dllです。 JRE32.DLL、BRegIf.dllの64bit版はありません。

7.1.1 hmjre.dll

秀丸エディタの正規表現エンジンは、JRE32.DLLからhmjre.dllに変更になっています。 hmjre.dllはJRE32.DLLに対して、以下の拡張が行われています。

  • パターンの繰り返し回数指定

    {n}
    {n,}
    {n,m}
  • 後方一致指定

    (?=expression)
  • 後方不一致指定

    (?!expression)
  • 前方一致指定

    (?<=expression)
  • 前方不一致指定

    (?<!expression)
  • 一般的正規表現互換のタグ付き正規表現

    \1 \2 ...
  • 繰り返しマッチングでのものぐさ指定(最短一致)

     *?
     +?
     ??
     {n,m}?
  • ヒットした扱いにするタグ指定

    (?\tag-number)

hmjre.dllのVer.3.00以降、さらに拡張が進み、

  • 文字クラスの略記法(\s,\S,\d,\D,\c,\C,\i,\I,\y,\Y)
  • グルーピングのみの括弧(タグ指定の対象にならない括弧)
  • 埋め込みコメント
  • \Q~\E を使用した、メタ文字のエスケープ範囲指定

以上の機能が、追加されています。詳細は、hmjre.dllのヘルプを参照してください。

7.1.2 BRegIf.dll+BREGEXP.DLL

BREGEXP.DLLを使うことにより、Perl互換(1996/05/25辺りのPerl5)の正規表現が使えます。使用するにはBRegIf.dllが必要です。

hmjre.dllに比べ、使用できる正規表現は増えますが、以下の制限があります。

  • あいまい検索が使用できない。
  • BRegIf.dll独自機能の関係で、エスケープが必要な文字が増える。("&"、";")

2007/09/16に公開されたバージョン(BRegIf.dll v0,0,2,2)では、K.Takata氏の修正が取り込まれ、括弧を使用した場合でも、置換で"\1"によるタグ参照が可能です。 "bregonig.dll"を認識し、"bregonig.dll"-->"BREGEXP.DLL"の順番でDLLのロードを試みます。明示的に"BREGEXP.DLL"を使用したい場合は、"bregonig.dll"をリネームするか、削除しておく必要があります。

7.1.3 BRegIf.dll+bregonig.dll

bregonig.dllを使うことにより、鬼車の正規表現が使えます。 (使用できる正規表現や、制限事項等は、bregonig.dllのドキュメントを参照) 使用するにはBRegIf.dll(v0,0,2,2)が必要です。

BRegIf.dll+BREGEXP.DLLと同じ制限があります。

bregonig.dllのインターフェースが、"BREGEXP.DLL"と同じであることを利用して、動作させています。

"bregonig.dll"-->"BREGEXP.DLL"の順番でDLLのロードを試みます。あまりないとは思いますが、"bregonig.dll"のロードに失敗した場合、"BREGEXP.DLL"が使用されることになります。 "bregonig.dll"を使用する場合は、"BREGEXP.DLL"を削除、またはリネームしておいた方がいいかもしれません。

"bregonig.dll"のバージョンが1.41未満の場合、BRegIf.dllの独自拡張機能である、";1"によるサブパターン指定が、正常に動作しません。サブパターン選択を使用する場合は、Version.1.41以降が必要です。

bregonig.dllは、Unicode対応版のVer.2.00以降がありますが、BRegIf.dllからは、Unicode対応のAPIは呼び出していません。その為、Ver.2.00以降を使用しても、動作はANSI/Shift_JIS 専用版と同じです。

7.1.4 hmonig.dll

hmonig.dllを使うことにより、鬼車の正規表現が使えます。 Ver.0.5.9.0以降では、鬼雲(Onigmo (Oniguruma-mod) ) の正規表現が使えます。 (使用できる正規表現や、制限事項等は、hmonig.dllのドキュメントを参照)

以下の制限があります。

  • あいまい検索が使用できない。(Ver.0.5.6.0以降は、hmjre.dll経由で使用可能)
  • ブラケット内の"\uxxxx"には対応していない。(Ver.0.5.0以降は対応)

7.1.5 正規表現スピードチェック実行結果

hmjre.dll Ver.4系の動作検証用マクロ(秀まるお氏作成)を、ちょっと改造したマクロの実行結果です。

以下のDLLをロードし、実行しています。

  • hmjre.dll Ver.5
  • hmonig.dll(UNICODE版 USE_COMBINATION_EXPLOSION_CHECK有効) Ver.8.3.0

実行したマクロ実行結果(2019/08/31更新)

結果が「-1」なのは、チェックをスキップした場合です。

測定結果10回分の平均値です。

結果 HmJreV5 hmonig(UNICODE)
No.001 165.6 140.4
No.002 254.6 179.7
No.003 4843.7 137.6
No.004 167.2 151.6
No.005 13311.3 132.7
No.006 390.8 150.1
No.007 164.1 153.1
No.008 229.5 211.2
No.009 201.5 6896.4
No.010 143.6 157.7
No.011 870 293.8
No.012 179.5 303
No.013 179.6 181.2
No.014 183 -1
No.015 189.2 218.7
No.016 235.8 195.3
No.017 215.6 -1
No.018 194 -1
No.019 223.4 534.6
No.020 211 531.3
No.021 218.8 1399.8
No.022 229.8 1304.7
No.023 214 137.6
No.024 270.4 157.8
No.025 6219 159.4

7.2 正規表現メモ

秀丸エディタにおけるタグ付き正規表現の上限を修正

7.2.1 否定文字クラス

一致して欲しくない文字の集合。指定された文字に一致しない文字にマッチする。 "\n"も含め、"一致しない文字"全てにマッチします。("."と違い、"\n"を含めたくない場合は、明示的に指定する必要あり。)

DLLのページにある、ファイルパスの分割で、ファイル名を分割するのに、否定クラス([^\\]+)を使用しているが、対象文字列を、

    $name = "C:\\Program Files\\Hidemaru\\hidemaru.exe\n";
                                                      ====追加

にすると、最後のファイ名の所で、改行文字までマッチします。否定クラスを使う場合、意図しない箇所までマッチする事があるので、注意が必要です。

7.2.2 タグ付き正規表現(hmjre.dll 括弧での指定)

一般的(?)な正規表現と違い、ネストした括弧に対応していないので注意。一番浅い括弧をタグと認識する。

aa(bbb(ccc)dddd)(eeeee)
   ============  =====
        \1         \2
(ccc)はタグと認識しない。

7.2.3 後方一致指定と後方不一致指定

肯定先読み、否定先読みとも呼ばれています。 "^"や"$"と同じアンカーで位置にマッチする。単独で指定した場合は、"文字"にマッチしないので、「検索文字列の強調表示」しても強調表示されない。

  • 後方不一致/否定先読みの例1(単独で使用した場合)

    (?!A) ==> "A"でない文字の先頭にマッチする。 
  • 後方不一致/否定先読みの例2

    Hidemaru(?!Editor) ==> "Editor"が後ろにある、"Hidemaru"にマッチする。 
  • 後方不一致/否定先読みの例3
    最後にある必要はなく、以下のような書き方もできます。

    (?!000)[0-9]{3} ==> "000"ではない3桁の数

    正確(?)には、「"000"に一致しない3桁の数字」になるのかな?「"000"が前にない3桁の数字」ではないので注意。

  • 後方一致/肯定先読みの例

    (?=000)[0-9]{3} ==> "000"に一致する、3桁の数字
    1. "000"であるかチェック
    2. 後方一致/肯定先読み は、位置にマッチする = 幅を持たないので、次の正規表現のチェック開始位置を動かさない。
    3. 数字が3桁連続しているかチェック

    上記、(1)と(3)は、正規表現のチェック開始位置は、同じです。

    もし、後方一致/肯定先読みではない場合は、

    000[0-9]{3}
    1. "000"であるかチェック
    2. マッチした場合は、マッチ範囲分だけ、次の正規表現のチェック開始位置をずらす。
    3. 数字が3桁連続しているかチェック

    という動作になります。

後方一致/肯定先読み、後方不一致/否定先読み が、チェック開始位置を動かさない為、以下の様な書き方をした場合、両方の条件を満たす場合のみ、マッチするような動作になります。

(?!000)[0-9]{3} ==> "000"ではない3桁の数
(?=000)[0-9]{3} ==> "000"に一致する、3桁の数字

7.2.4 前方一致指定と前方不一致指定

肯定後読み、否定後読みとも呼ばれています。 "^"や"$"と同じアンカーで位置にマッチする。単独で指定した場合は、"文字"にマッチしないので、「検索文字列の強調表示」しても強調表示されない。

(?<=A) ==> "A"の最後(末尾)にマッチする。

"後読み"と言われているように、最後にマッチ判定を行います。

(<=aaa)(bbb)ccc(ddd) ==> (bbb)ccc(ddd)にマッチする箇所を探してから、
                         (<=aaa)にマッチするか判定する。

使用するDLLによって、制限があるので注意すること。

  • 必ず先頭にあること
  • 可変長の指定はできない。(hmjre.dllでは可能)

7.2.5 grepで条件に一致しない行を列挙する

秀丸エディタVer.8より、grepに「ヒットしない行」というオプションが追加され、秀丸エディタの機能で、条件に一致しない行を列挙可能になっています。

BRegIf.dllはBREGEXP.DLLへの仲介を行うだけでなく、独自の拡張が行われて、パターンの否定が出来ます。(詳細は添付されているテキストファイルを参照)

hmjre.dllの場合は、後方不一致指定を使えば可能。

^((?!一致しない文字列).)+$

参考サイト:正規表現パズル

一致しない条件が一文字または、どれか1文字という場合は、

^[^a]+$

という、否定クラスを使う方法もあります。

以下の正規表現は、"ab"を含まないという表現にはならないので、注意すること。

^([^a][^b])+$

7.2.6 \wの違い

\wは一般的に、単語構成文字([a-zA-Z_0-9])のクラス略記法ですが、使用するDLLによって、扱いが異なります。(正規表現は処理系毎に、微妙に異なることが多い事と、多言語対応による。)

7.2.6.1 hmjre.dll

JRE32.DLLと同様のため、[a-zA-Z_]+ になります。数字が含まれない事と、文字ではなく、文字列にヒットします。

7.2.6.2 BRegIf.dll + BREGEXP.DLL、hmonig.dll(Ver.0.50以降)

[a-zA-Z_0-9] になります。

7.2.6.3 BRegIf.dll + bregonig.dll、hmonig.dll(Ver.0.50未満)

[a-zA-Z_0-9]+2バイト文字の範囲(漢字、カタカナ、ひらがな) になります。(使用するロケールに従い、単語構成文字にマッチする。)日本語の文章を、「\w+」で検索すると、ほぼ全ての文字にマッチします。その為、「\b」(単語境界)も影響を受けます。

7.2.7 Shift_JIS範囲外の文字(漢字)について

2015/06/08現在、正規表現検索でShift_JIS範囲外の文字を正常に扱えるのは、hmjre.dll、hmonig.dll(Ver.5.0以降)だけです。他のDLL(BRegIf.dll(BREGEXP.DLL、bregonig.dll)、hmonig.dll(Ver.5.0未満)、JRE32.DLL)は、基本的にShift_JIS専用で、 Unicodeには対応していません。

検索が行われない訳ではありませんが、

  • Shift_JIS範囲外の文字とメタ文字(*、?、+)を組み合わせ
  • Shift_JIS範囲外の文字をブラケット内([])で指定する

等は、正常な結果を返さない場合があります。

bregonig.dllは、Unicode対応版のVer.2.00以降がありますが、BRegIf.dllからは、Unicode対応のAPIは呼び出していません。その為、動作はVer.1系(ANSI/Shift_JIS 専用版)と同じです。(Ver.2.00以降を使用しても、Ver.1系と同じ動作になる)

7.2.8 秀丸エディタにおけるタグ付き正規表現の上限

秀丸エディタで使用できるタグの上限は、hmjre.dllの仕様から9までとなります。

BRegIf.dll + bregonig.dll、hmonig.dll自体は、10以上も指定可能ですが、秀丸エディタ側から10以上を取得できないので、実質10以上は、使用できません。

正確には、検索時に後方参照で使用する場合は、DLL内の処理で済むため、10以上も使用可能です。置換は、秀丸エディタ側で処理を行うため、10以上は使用できません。

秀丸エディタVer.8.58β1(HmJre.dll V4.13)より、15まで指定可能になりました。

\g{数字}

という指定方法になります。

目次へ


top秀丸エディタマクロ