|
IKKI と申します。こんばんは。
矩形編集機能についてマクロでの実現を考えてみました。
◆結論
サクラエディタと同じ動作は秀丸マクロでは実現困難です。
英数字限定なら何とか可能ですが、 IME 経由の入力に対応できません。
アンドゥも1回では済みません。
◆代替案
次のような使い方をするマクロなら比較的簡単に作れそうです。
1. 矩形選択する
2. マクロ実行
3. ダイアログが出る → 文字列を入力
4. [ OK ] を押す → 文字列が各行に書き込まれる
マクロの例題として挑戦してみてはいかがでしょうか。
◆感想
秀丸は矩形編集に弱いところがありますね。個人的には
BOX 選択範囲をドラッグ&ドロップできたらいいのに…と思ったりもします。
---------------------------------------------------------------------
◆代替案の例
if (!rectselecting) {
message "BOX 選択してください";
endmacro;
}
if (!freecursor) {
freecursorswitch;
#switched = 1;
}
$text = input("矩形挿入", "");
##x1 = seltopx;
##y2 = selendy;
moveto seltopx, seltopy;
escape;
while (y <= ##y2) {
insert $text;
moveto ##x1, y + 1;
}
if (#switched) {
freecursorswitch;
}
これは素朴な例にすぎませんが、サクラエディタの動作には近いと思います。
行が折り返してたらどうするか、全角文字の真ん中をまたいだらどうするか、
アンドゥを1回で済ませる方法はないか…など、奥は深いかもしれません。
(サクラエディタはあまり深く考えていないようです…? (^^; )
|
|