|
とりあえず僕の方で分かる範囲でコメントさせていただきます。
範囲選択しないで実行した場合も想定してマクロを作るとしたら、例えば
setcompatiblemode 0x2000F;
#selecting = selecting;
if( #selecting ) {
rangeeditin;
}
replaceallfast "A","B",regular;
replaceallfast "C","D",regular;
replaceallfast "E","F",regular;
if( #selecting ) {
rangeeditout;
}
のようにすればいいと思います。
あるいは、rangeedit関係を使わずにあくまで範囲選択してinselect指定でっ
てことなら、ちょっと面倒ですが、例えば
#selecting = selecting;
if( selecting ) {
#x1 = seltopx; #y1 = seltopy;
#x2 = selendx; #y2 = selendy;
} else {
#x1 = 0; #y1 = 0;
gofileend;
#x2 = x; #y2 = y;
}
moveto #x1, #y1; beginsel; moveto #x2, #y2; endsel;
replaceallfast "A","B",inselect,regular;
moveto #x1, #y1; beginsel; moveto #x2, #y2; endsel;
replaceallfast "C","D",inselect,regular;
moveto #x1, #y1; beginsel; moveto #x2, #y2; endsel;
replaceallfast "E","F",inselect,regular;
ってマクロでおおよそうまく動くようではあります。ただ、置換によって行数
が変化してしまうケースでは、置換範囲が狂う可能性があります。(なので
rangeedit使った方がいいんだと思う)
|
|