[ 新規に投稿する ]

マクロ動作をやり直しバッファに残さないNo.10759
おすぎ さん 25/10/08 08:48 [ コメントを投稿する ]
いつもお世話になっています。

マクロを動作させて、それをやり直しバッファに残さない方法はあるでしょうか?

Google AI によると、以下の通り。
「秀丸でマクロ実行時の「やり直しバッファに残さない」ようにするには、
マクロファイル内で「Undo_Enable = 0;」と記述して、
一時的にUndo機能を無効にしてから実行し、
その後「Undo_Enable = 1;;」でUndo機能を再度有効にします」

Undo_Enable = 0; なんてコマンドは、ないですよね?
実際、書いてみたらエラーが出ました。

ご教授いただけましたら幸いです。
よろしくお願いいたします。
[ ]
RE:10759 マクロ動作をやり直しバッファに残さないNo.10760
秀丸担当 さん 25/10/08 09:38 [ コメントを投稿する ]
  秀丸マクロにはUndo_Enable = 0;といった方法は無いです。

やり直しバッファは一連の繋がりなので、マクロ動作中だけの部分をやり直しバッファに残さないということはできません。
一時的な編集があって、それを戻したいという場合は、本当にやり直しをするのがいいです。
begingroupundo〜endgroupundoを使うとまとめてやり直しができます。

例:
begingroupundo;
insert "a\n";
insert "b\n";
endgroupundo;
undo;

キー割り当て等が可能なコマンドとして、[やり直しバッファのクリア]があります。
これに相当するマクロの文は、
clearundobuffer;
になります。
これは名前の通りクリアするので、それ以前のやり直しは全てできなくなります。
[ ]
RE:10760 マクロ動作をやり直しバッファに残さないNo.10761
おすぎ さん 25/10/08 09:52 [ コメントを投稿する ]
  >マクロ動作中だけの部分をやり直しバッファに残さないということはできません
>clearundobufferは、それ以前のやり直しは全てできなくなります。

部分的にやり直しバッファに残さないというのはダメなんですね。
ありがとうございました。
[ ]

[ 新規に投稿する ]