selectallfoundが正しく動きませんNo.36019
dmc さん 17/09/09 20:21
 
過去スレの
http://hidemaruo.dip.jp:81/hidesoft/hidesoft_4/x08074.html

秀丸担当 さん 16/02/18 14:50 の投稿

setsearch "kb\\d\\d\\d", 0x10; //kb123 の正規表現の例
selectallfound;
copy;
newfile;
paste;
endmacro;

これを次のテキストで試しました。
this is kb123.
kb556 is new.
the kb001 has lost.

しかしカーソル位置の次のマッチ部分しかコピペされません。
全てのマッチ箇所を一括コピペするにはどうすれば良いでしょうか?

v8.69 32bit / windows10 64bit

[ ]
RE:36019 selectallfoundが正しく動きませNo.36020
h-tom さん 17/09/10 00:40
 

h-tom です。

>しかしカーソル位置の次のマッチ部分しかコピペされません。
>全てのマッチ箇所を一括コピペするにはどうすれば良いでしょうか?
マクロは過去との互換性を重視しているため、本体側で新しい機能が追加されても、
マクロ側はデフォルトで追従しない場合もあります。

今回のマクロの場合は、複数選択状態(selectallfound)で、コピーする(copy)
箇所が該当します。

"copy"が、新しい機能である「複数選択」に対応してないため、カーソルのある、
選択箇所のみコピーしている状態です。

これを変更するには、setcompatiblemode文 を使います。
setcompatiblemode文の説明に、

  0x00100000 各種の文を複数選択に対応した動作にします。

とあるので、このフラグを設定すれば、期待通りに動作するはずです。


担当さんへ
マクロヘルプ「削除系文」、「クリップボード系文」の所に、注記が必要かな?
・デフォルトでは、「複数選択」に対応していないこと。
・「複数選択」に対応させるには、setcompatiblemode文 を使う必要があること。

[ ]
RE:36020 selectallfoundが正しく動きませNo.36021
dmc さん 17/09/10 01:17
 
h-tom さんありがとうございます。

期待通りの動作になりました。
大変に感謝いたします。

[ ]
RE:36020 selectallfoundが正しく動きませNo.36022
秀丸担当 さん 17/09/11 07:59
 

ご指摘ありがとうございます。
複数選択時のsetcompatiblemodeについて、確かにマクロヘルプに注意書きがあ
ったほうがいいと思います。
追記したいと思います。

[ ]