BOX切り取り後の貼り付けNo.39175
K'zawa さん 21/09/08 16:25
 
こんにちは、K'zawaです。

新規秀丸で下のマクロ

    insert "a";
    beginrect;
    left;
    cut;
    insert "b";
    left;
    paste;

を実行すると、結果は、

ab

となりますが、同じことを手動でやると、

a
b

となってしまいます。bの後ろが改行なしの[EOF]のときそうなるようです。

V8.13のころには既にあった現象のようです。

[ ]
RE:39175 BOX切り取り後の貼り付けNo.39177
秀丸担当 さん 21/09/08 17:53
 

確かにそのような動作になっていることが確認できました。
調べてみたところ、V8.02のときに、V7.xx以下の互換性のために、そういう動作が維
持されるようにしてありました。
まず、BOX選択をコピーした状態のpasteは、pasterect相当になります。
pasterectは、V7.xx以下で[EOF]の行に貼り付けると改行が入らないという動作があ
って、そういう動作でないとマクロの互換性の問題の連絡があって、それが維持され
るようにしてありました。
マクロヘルプのところにその動作を追記しておこうと思います。

[ ]
RE:39177 BOX切り取り後の貼り付けNo.39181
K'zawa さん 21/09/09 00:08
 
秀丸担当さん、こんにちは。
K'zawaです。

>pasterectは、V7.xx以下で[EOF]の行に貼り付けると改行が入らないという動作があ
>って、そういう動作でないとマクロの互換性の問題の連絡があって、それが維持さ
>れるようにしてありました。

マクロが正常、手動は異常という認識なんですが、手動の動作をそういうものとして
使う方がおられるという話ですか?
あえてそうしていることであれば了解ですが。

[ ]
RE:39181 BOX切り取り後の貼り付けNo.39183
秀丸担当 さん 21/09/09 09:46
 

調べてみたところ、BOX選択がコピーされた情報を貼り付けるときの[EOF]の行のとき
の動作は、V8.00β1のときに変更がありました。
1行分だけのBOX選択だと、確かに改行が入るのは異常と感じてしまうかもしれませ
ん。2行以上でも1行だけでも同じような動作となるようにしているため、1行でも
改行が入っています。

そういう要望があったという記録もないので、V8.00β1のときのいろいろな機能追加
等と一緒にまとめてしたのだと思います。
TSV/CSVモードもそのとき追加したので、例えば列をBOX選択して新規秀丸エディタに
貼り付けると最後の行だけ改行が無いと都合が悪いようなこともあると思います。

[ ]
RE:39183 BOX切り取り後の貼り付けNo.39190
K'zawa さん 21/09/10 01:22
 
秀丸担当さん、こんにちは。
K'zawaです。

どうやら問題点がうまく伝わっていないようです。
改行を入れる入れないの話は、いまひとつピンときてなかったのですが、ようやく理
解しました。
それを加味すると、「改行を入れるとき場所が間違っているのでは?」ということで
す。

張り付け前
b[EOF]

張り付け後
a
b[EOF]

正しくはこうなるのでは?
ab
[EOF]

ということではあるのですが、貼り付ける場所が行頭でないときには、改行を入れて
ないようで、一貫性がないような気がするのですが。

[ ]
RE:39190 BOX切り取り後の貼り付けNo.39192
秀丸担当 さん 21/09/10 09:23
 

すみません。
確かに最初のご指摘の通り、bの前に改行が入るのはおかしかったです。
いまさながらではありますが、修正しようと思います。
類似の動作として、部分編集しているときがあって、部分編集の末尾の行と同じよう
になったほうがよさそうです。
部分編集の末尾の行では、カーソルが行末以降にあるかどうかで違っていて、これと
同じ感じとなるように以下のようにしようと思います。

bの前にカーソルがある場合:
ab[EOF]

bの後にカーソルがある場合
ba
[EOF]

[EOF]だけの場合:
a
[EOF]

[ ]
RE:39192 BOX切り取り後の貼り付けNo.39194
K'zawa さん 21/09/10 16:11
 
秀丸担当さん、こんにちは。
K'zawaです。

>確かに最初のご指摘の通り、bの前に改行が入るのはおかしかったです。
>いまさながらではありますが、修正しようと思います。

よろしくお願いします。

[ ]