1行上の同じカラムの1文字を複写するマクNo.09712
maverick007 さん 21/12/30 11:18
 
下記マクロをキーに割り当てて使っています。

if (lineno > 1) {
 up;
 #c = code;
 down;
 $c = char(#c);
 insert $c;
}

endmacro;

だいたいはうまくいくのですが、たまに意図しない文字が入ってしまうことがありま
す。
発生するのはクリック等でカーソルを移動した直後が多いでしょうか。
うまくいかなかった場合も、その文字をBSで消して再度実行するとうまくいきます。
問題を指摘いただければ幸いです。

[ ]
RE:09712 1行上の同じカラムの1文字を複写No.09713
秀丸担当 さん 22/01/05 09:47
 
同じ原因かわからないですが、見た目上の1行上にならなことはありえます。
上下移動だけをするときは、元のx位置を維持しようとする動きがあります。
例えば、
abcdef
123
というテキストで、fの位置をクリックして直接移動し、下矢印キーを押すと123の行
の末尾にカーソルが来ます。
ここから上矢印キー(up)すると、dの位置ではなく、fの位置になります。

この動作を無くすには、マクロ先頭で
moveto x,y;
としておくといいと思います。
クリックしたときと同じように直接移動し、上下移動で維持する元のx位置がmoveto
x,y;の場所と同じになります。

[ ]
RE:09713 1行上の同じカラムの1文字を複写No.09714
maverick007 さん 22/01/05 20:47
 
秀丸担当様

直ったようです。
ありがとうございました。

[ ]