|
こんにちは、小原です。長文失礼します。
>とりあえずボックスの上書きの要望は他にもあるので、検討しておきます。
既に検討項目になったとの事ですが、実装されるまでの間、私が数
年前から個人的に使用しているマクロが代わりになりませんでしょ
うか?
よろしければ試してみてください。勘違いでしたらすみません。
既に山紫水明さんが挙げられていますね。それにできがいい。
Undoも簡単だし...
私の方は「基本的に上書き張り付けで、一応矩形も対応しているよ。」
といった感じです。
私は "Shift + Insert" = "貼り付け"
"Shift + Alt + Insert" = "当マクロ" にキー割り当てしています。
・注意事項
- クリップボードにTabが含まれていた場合、うまく動作していません。
- 秀丸エディタは"BOX貼り付け"の場合、
"動作環境-スクロール-貼り付け後のカーソル位置"
の設定に関係なく"常に先頭のまま"ですが、当マクロでは設定に従
うように作成されています。
−−−−キリトリセン−−−−
// BOX対応上書き貼り付けマクロ
main:
moveto x, y; ##l_x = x; ##l_y = y;
beginclipboardread;
##i = 0;
$$str[##i] = getclipboard;
while( $$str[##i] != "" )
{
##i = ##i + 1;
$$str[##i] = getclipboard;
}
disabledraw;
##freecursor = freecursor;
if( ##freecursor == 0 )
freecursorswitch;
##cnt = 0;
while( ##i )
{
$$dum = rightstr( $$str[##cnt], 1 );
##flg = 0;
if( $$dum == "\x0A" )
{
##flg = 1;
##len = strlen( $$str[##cnt] );
$$str[##cnt] = midstr( $$str[##cnt], 0, ##len - 1 );
}
moveto x, y; ##x = x; ##y = y;
overwrite $$str[##cnt];
##i = ##i - 1;
##cnt = ##cnt + 1;
// if( ##flg == 1 && ##i )
if( ##flg == 1 )
{
if( code == eof )
insertfix "\x0A";
moveto ##x, ##y + 1;
}
}
if( ##freecursor == 0 )
freecursorswitch;
call getpastecursorfix;
if( ##return == 1 )
moveto ##l_x, ##l_y;
enabledraw;
endmacro;
getpastecursorfix:
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
return getregnum( "PasteCursorFix" );
−−−−キリトリセン−−−−
#行数を少なくするために改行や括弧{}を少なくしているので見づらくなっています。
それでは、失礼致します。
|
|