Version 21.7 新增功能

2022年5月11日

一般新增功能

  • 新版本會預設用垂直分割視窗顯示比較檔案的結果,當您選擇比較按參數比較命令時。之前使用的平鋪視窗顯示仍然可以通過設定選項來實現。
  • 如果重新加載之前捲動位置在底部,則新版本將在重新加載檔案時保持捲動位置在底部。
  • 當在組態屬性的檔案頁面中選擇偵測全部選項時,如果 Windows 不支持偵測到的編碼(如VISCII),新版本將繼續以系統預設編碼打開檔案並顯示通知。
  • 改進了 URI 亮顯顯示。
  • 改善了 CSV 選擇模式中的行選取行為。
  • 水平網格的預設樣式由虛線改為普通,並優化垂直分隔符的繪制速度。
  • 在某些組態(包括 C++)中變更了規則運算式中結尾縮排的預設值。
  • 批次取代對話方塊支持多項取代全部多項取代全部會在文檔中同時搜索所有搜索字串,而批次取代全部則在文檔中一次搜索一個搜索字串,然後重複對每個搜索詞的搜索。多項取代全部的速度比批次取代全部快得多。詳細信息請參閱批次取代全部和多項取代全部之間的區別

測試結果:

批次取代全部(v21.7)多項取代全部(v21.7)比較
取代全部50 分 55 秒0.484 秒快 6310 倍

* 用隨機字串取代 100 萬個隨機字串,忽略大小寫,966 KB,10,000 行,隨機 ASCII 數據。預設選項;操作系統:Windows 11,Core i9-11900K,64GB RAM,2TB SSD。

新增選項

  • 添加了多項取代全部按鈕到批次取代批次多檔取代對話方塊中。
  • 添加了多項尋找按鈕到批次多檔尋找批次多檔取代對話方塊中。
  • 添加了垂直分割選項按鈕到比較檔案精靈的選擇檢視選項頁面中。
  • 添加了僅在 EmEditor 處於活動狀態時監控檔案選項到自訂對話方塊的檔案頁面上。

外掛程式的新增功能

  • 添加了 FLAG_FIND_MULTI 標志到 BATCH_INFO 結構中。
  • 添加了 LFI_DONT_ADD_RECENT 標志到 LOAD_FILE_INFO_EX 結構中。
  • 添加了 COMPARE_SPLIT_VERT 標志到 Editor_Compare 內嵌函式以及 COMPARE_INFO 結構中。

新增巨集功能

  • 添加了 eeExFindMulti 標志到 Selection 對象的 BatchReplace 方法和 Editor 對象的 BatchFindInFilesBatchReplaceInFiles 方法中。
  • 添加了 eeCompareSplitVert 標志到 Editor 對象的 Compare方法中。

批次取代全部和多項取代全部之間的區別

批次取代全部一次在整個文檔中搜索一個字串,並按搜索字串的數量重複此過程。多項取代全部同時搜索所有搜索字串。這個區別會導致不同的結果,如果搜索/取代字串配對包含如下範例:

1 → 5
2 → 4
4 → 2
5 → 1

並且如果源文檔是:

[1,2,3,4,5]

在這個情況下,如果用批次取代全部,EmEditor 會先把整個文檔中的 1 取代為 5,然後再將 2 取代為 4。這樣,源文檔會變為:

[5,4,3,4,5]

接下來,當它將 4 取代為 2 時,請註意它將取代兩個 4(第二個和第四個數字)。最後,當它將 5 取代為 1 時,它將取代兩個 5(第一個和最後一個數字)。因此,結果將是:

[1,2,3,2,1]

如果使用新的多項取代全部,EmEditor 將同時取代所有字串。因此,結果將是:

[5,4,3,2,1]

多項取代全部的執行速度會比批次取代全部快很多。在我們的測試中,多項取代全部的速度比批次取代全部快 6310 倍,當搜索/取代配對有 100 萬個時。(請參考測試結果)。

多項取代全部不支援規則運算式,數字範圍,或包含換行的字串。