last updated:2023/12/27
秀丸 ver.3.00になって、機能強化に伴いマクロ文が追加されたり、仕様変更が行われました。また、いくつかのバグ修正も行われています。
そのため、裏を返せば ver.2.xとの間でマクロに一部非互換が発生しています。
この章では、マクロの非互換情報を中心に、マクロ関連の変更履歴の情報を集めました。
【1】マクロ関連の変更履歴 - 「秀丸エディタ」Ver. 3.00
【2】gokakko, goleftkakko, gorightkakko の仕様変更
【3】ステルス秀丸の処理
【4】escape;のresult
【5】hidemaruhandle(0) の取り違え
gokakko 対応する括弧に移動
goleftkakko '{'に移動
gorightkakko '}'に移動
これらの 3 個のマクロ、コマンドは Ver. 3.00 から仕様が変更されました。
「ファイルタイプ別の設定」で「コメント/文字定数のカラー表示」を指定しない場合には従来の移動と同じです。また、これを指定した場合には、以下の動作になります。
マクロが終了したとき、 /h でオープンされた窓が開かれる仕様になりました。
ちなみにこの仕様については、マクロのバグでマクロが異常終了したときは、有効ではありません。
「入力補完」とか「辞書引き」のマクロ等では、意図して /h で残す場合がありましたが、Ver. 3.0x ではそれができません。
escape;
message str(result);
現在 (Ver. 3.0x) でも、escape; は result = 0 となります。
偶然、この仕様であるが将来は不明です、
マクロのテストにはべんりですが、恒久的なコードをすることはお勧めではないです。
下記のような例で発生する hidemaruhandle(0) の取り違えは治っていませんが、大きな問題ではありません。仕様にも見えるでしょう。
「常駐秀丸の終了 (C) 」の後に、マクロ c1. mac を「マクロ実行」する、
その後で、c2.mac で確認すると、hidemaruhandle(0) の矛盾がわかります。
// c1.mac
saveas "a1.txt";
$wk1 = filename;
#ii = hidemaruhandle(0);
message str(#ii);
$wk2 = "a2.txt";
openfile "/h " + $wk2;
#jj = hidemaruhandle(0); // おいおい !!!
message str(#jj);
#kk = hidemaruhandle(findhidemaru($wk1)); // ナイナイ !!!
message str(#kk);
endmacro;
// c2.mac
#i = hidemaruhandle(0);
message str(#i);
endmacro;
※この内容は秀丸エディタ ver.3.01の内容を元に書かれています。
今後のバージョンアップによっては、上記の内容が必ずしも当てはまらない場合もあるかもしれません。