Applekdz
@Applekdz

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

EmEditorでバッチリストで変換するときのeeReplaceAllについて

お世話になっております。
EmEditorで、単独ですべて置換は以下ですが
document.selection.Replace("","",eeReplaceAll | eeFindReplaceRegExp,0);

このときにすべて置換で書こうとすると動かなくなります。
batch_list = editor.filters;
batch_list.AddReplace("","",eeReplaceAll | eeFindReplaceRegExp,0);

document.selection.BatchReplace(batch_list,eeReplaceAll,eeExFindRegexOnigmo);

バッチリストの時の、すべて置換は書き方が異なるのでしょうか?
通常の書き方sampleは録画ボタンで採取するため、batch_list = editor.filters;の場合は録画できないかやりかたがわからないのでsampleコードが採取できませんでした。

よろしくお願いいたします。

追加です。
document.selection.Replace("","",eeReplaceAll | eeFindReplaceRegExp,0);
こちらでやってみましたが、希望の一括置換のようにはなりませんでした。

一括置換機能が待望です。
あらかじめ数の推定がつくものはましなのですが莫大にあると正規表現では置換しきれずに未変換が残ります。
どれぐらいあるか推定が出来ませんので残ります。
結果としては前回の質問と同様になってしまいました。

一括置換だとすべて綺麗に対象物が変換できるのですが解決策はありますでしょうか?

追加
こちらのスレで解決しました。
https://qiita.com/Applekdz/questions/787bdf48429a1d6f4799

0

1Answer

次のように、AddReplace() メソッドには、eeReplaceAll を除いてフラグを指定してください。また、検索文字列は空にすることはできません。

batch_list = editor.filters;
batch_list.AddReplace("a","b", eeFindReplaceRegExp,0);
document.selection.BatchReplace(batch_list,eeReplaceAll,eeExFindRegexOnigmo);

「録画ボタン」というのは、「記録の開始」ボタンの意味だと思いますが、マクロの記録は可能です。

1Like

Comments

Your answer might help someone💌