如何在 emeditor 中对大量文件 "batch replace"

how to "batch replace" for a lot of files in emeditor

是的,我知道"Batch Replace All",但是

我的替换列表很大,有 200 多个项目,我会在一个有很多文件的大文件夹中使用它。

现在,emediter 的行为是在所有文件中使用 item1,然后在所有文件中使用 item2.....

预计:在文件 1 中使用 item1....item200,在 file2 中使用 item1...item200

怎么做?

我尝试使用宏(打开文件、替换、关闭文件),但是速度很慢,因为打开一个文件需要 50 毫秒

emeditor 19.9.1

var fso = new ActiveXObject("Scripting.FileSystemObject");
var files = [];
var filesHasModified = [];
function showFolderFileList(folderspec) {    
    var f = fso.GetFolder(folderspec);
    if(/\(doc|lib|\.git|\.idea|\.vs|dll)$/gi.test(folderspec)){
        return;
    }

    // recurse subfolders
    var subfolders = new Enumerator(f.SubFolders);
    for(; !subfolders.atEnd(); subfolders.moveNext()) {
        showFolderFileList((subfolders.item()).path);
    }  

    // display all file path names.
    var fc = new Enumerator(f.files);
    for (; !fc.atEnd(); fc.moveNext()) {
         var file = fc.item();
         if(/\.(jmx|config|cs|Config|tt|ttinclude|txt|yml|java|bak|xml|cshtml|sh|yaml|js|json|md|properties)$/gi.test(file)){
            files.push(file);
            }

    }

}

showFolderFileList('D:\Sources.git2');




for( i in files)
{

    var file = files[i];





    editor.OpenFile(file);
    document.selection.Replace("http://172xx","http://offline.esb.xx",eeReplaceAll,0);
    document.selection.Replace("http://172xx1","http://offline.esb.xx",eeReplaceAll,0);
    document.selection.Replace("http://172xx2","http://offline.esb.xx",eeReplaceAll,0);
    //....200 more

    if(document.Saved)
    {
        document.close();
    }
    else
    {
        filesHasModified.push(file);
        document.Save(file);
        document.close();
    }


}

editor.NewFile();
document.selection.Text = filesHasModified.join("\r\n");

我会在以后的版本中优化在文件中批量替换。同时,请尝试(正常)批量替换搜索组中的所有文档选项。您可以这样做:

  1. 将 EmEditor 更新到 v19.2.2(或更高版本)。

  2. 打开 EmEditor,select工具菜单-自定义-选项卡 页面,select None 来自 When Not Fit 下拉列表,以及 select 固定为 宽度 下拉列表中的 指定。

  3. 使用 EmEditor 打开所有(或部分)文件。一种简单的方法是将多个文件从 Windows Explorer 拖放到 EmEditor。

  4. 在EmEditor中,按Ctrl + H显示替换对话框,点击批处理>>,设置搜索组中所有打开的文档,确保批处理列表已更新,然后单击全部替换按钮。

(正常)批量替换将按您预期的方式工作(在 file1 中使用 item1....item200,在 file2 中使用 item1...item200,等等)。