|
A1です。こちらにぶら下げます。
<秀丸担当 さん #31785>
>ダイアログとして選択できるようになっていると動作がわかりやすくていいと思
>います。
はい。ネタということでお願いします。
※個人的には、現「BOX 貼り付け」同様の強制型も推したいところですが…
>Shiftを押しながら→,←と入力して[編集]→[追加コピー]とすると一応可能でした。
元々の「裏ワザ」は丁度↑のようなものでした。手作業に対応するマクロとして、
同じ場所で beginsel; endsel; (幅ゼロで選択) の後 appendcopy;
ということをやっていました。
<hawk-eye さん #31774> を見て思い出し、
addclipboard ""; に置き換えたので、以前からこの挙動だったかは不明でした。
テストの結果、appendcopy と同じ挙動でそのまま使えると判断して投稿しました。
しかし「現状の秀丸の動作に依存する」点はやはり「裏ワザ」なので、
もし仕様ならば公式に明示していただけると有難いです。その点
<秀丸担当 さん #31782>
>マクロヘルプのaddclipboardのところにも消去されるということを追記させてい
>ただきます。
は助かりました。(お手間を増やしてしまいますが) appendcopy についてもお願い
します。
では。
(以下参考)
以下は新規ファイル中で「幅ゼロの選択→コピー※→追加コピー」を行なったときの
動作例です。
「貼り付け」はせずに getclipboardinfo(n) で内部的な扱いを参照しています。
※copy2 を用いたのは選択範囲をクリアしないためです(手抜き)
----↓- 実行結果 -------------------------------------------------
TN,TN, 通常-appendcopy
TB,TN, BOX -appendcopy
TN,0N, 通常-addclip(空白)
TB,0N, BOX -addclip(空白)
TN,TN, 通常-addclip(文字有)
TB,TN, BOX -addclip(文字有)
----↑------------------------------------------------------------
copy2 直後はいずれも選択状態(通常/BOX)を反映してますが、
追加コピー後は (appendcopy/addclipboard 共に)いかなる場合で
あっても、BOX 選択状態がクリアされています("N"/"B" → "N" になる)。
また幅ゼロのコピーであるにもかかわらず、 copy2 の後は
「クリップボードにテキスト有り("T")」と認識していますが、
addclipboard "" の場合に限り、追加コピー後に「テキスト無し("0")」に
されています(3−4行目)。
※ここには書きませんが、(本来の用法通り)幅のある文字列を
選択した状態から始めれば、全て「テキスト有り("T")」になります。
念のため、 addclipboard "a" と空でない文字列を渡してみると、
「テキスト有り("T")」になります。…って当然ですね(5-6行目)。
どうも(addclipboard の結果)クリップボードが空文字列になることに対して、
なんらかの最適化が働いているようです。
以下はテストコードです。
----↓- test.mac -------------------------------------------------
newfile;
$I = "";
beginsel; endsel; copy2; call L; appendcopy; call L " 通常-appendco
py\n";
beginrect; endsel; copy2; call L; appendcopy; call L " BOX -appendco
py\n";
beginsel; endsel; copy2; call L; addclipboard ""; call L " 通常-addclip
(空白)\n";
beginrect; endsel; copy2; call L; addclipboard ""; call L " BOX -addclip
(空白)\n";
beginsel; endsel; copy2; call L; addclipboard "a"; call L " 通常-addclip
(文字有)\n";
beginrect; endsel; copy2; call L; addclipboard "a"; call L " BOX -addclip
(文字有)\n";
insert $I;
clearupdated;
endmacro;
L:
$$s = midstr("0T*", getclipboardinfo(0), 1); // テキストの有無
$$c = midstr("NB*", getclipboardinfo(1), 1); // 通常/BOX選択
$I = $I + $$s + $$c + ","+ $$1;
return;
----↑------------------------------------------------------------
|
|