New in Version 21.7

May 11, 2022

New General Features

  • The new version displays file comparison results in one vertically split window by default when you select the Compare or Compare with Options command. The previously used tiled window display is still possible by setting options.
  • The new version will keep the scroll position bottom when the file is reloaded if the scroll position was bottom before reloaded.
  • When the Detect All option is set in the File page of configuration properties, the detected encoding was unsupported on Windows (such as VISCII), the new version will continue to open the file as the system default encoding and show a notification.
  • Improved URI highlighting.
  • Improved line selections in CSV selection mode.
  • Changed the default style of Horizontal Grid from Dotted Lines to Normal, and optimized the drawing speed for Vertical Separators.
  • Changed the default value for the End Indent in a regular expression in some configurations including C++.
  • Supported Bulk Replace All in the Batch Replace dialog box. Bulk Replace All searches the document simultaneously for all search strings while Batch Replace All searches the document for one search string at a time and repeats the search for each search term. Bulk Replace All works much faster than Batch Replace All. See Difference between Batch Replace All and Bulk Replace All for more information.

Test results:

Batch Replace All (v21.7)Bulk Replace All (v21.7)Comparison
Replace All50 minutes 55 seconds0.484 seconds6,310 times faster

* Replace 1 million random strings with random strings, ignore case, 966 KB, 10,000 lines, random ASCII data. Default options, Windows 11, Core i9-9900K, 32GB RAM, 2TB SSD.

New Options

  • Added the Bulk Replace All button to the Batch Replace and Batch Replace in Files dialog boxes.
  • Added the Bulk Find button to the Batch Find in Files and Batch Replace in Files dialog boxes.
  • Added the Split vertically radio button to the Select view options page of the Compare Files wizard.
  • Added the Monitor files only while EmEditor is active option to the File page of the Customize dialog box.

Plug-in New Features

  • Added the FLAG_FIND_MULTI flag to the BATCH_INFO structure.
  • Added the LFI_DONT_ADD_RECENT flag to the LOAD_FILE_INFO_EX structure.
  • Added the COMPARE_SPLIT_VERT flag to the Editor_Compare inline function and COMPARE_INFO structure.

Macro New Features

  • Added the eeExFindMulti flag to the BatchReplace method of the Selection object and the BatchFindInFiles and BatchReplaceInFiles methods of the Editor object.
  • Added the eeCompareSplitVert flag to the Compare method of the Editor Object.

Difference between Batch Replace All and Bulk Replace All

Batch Replace All searches a whole document for one string at a time, and repeats this procedure for the number of search strings. Bulk Replace All searches for all search strings simultaneously. The difference may lead to different results if search/replace string pairs contain, for instance:

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

and if the source document is:

[1,2,3,4,5]

In this case, if Batch Replace All is used, EmEditor will replace 1 with 5 for the whole document first, and then will replace 2 with 4. At this point, the source document becomes:

[5,4,3,4,5]

Next, when it replaces 4 with 2, note that it will replace two 4’s (the second and fourth numbers). Lastly, when it replaces 5 with 1, it will replace two 5’s (the first and last numbers). Thus, the result will be:

[1,2,3,2,1]

If the new Bulk Replace All is used, EmEditor will replace all strings simultaneously. Therefore, the result will be:

[5,4,3,2,1]

as you expect.

Bulk Replace All will replace much faster than Batch Replace All. In our test, Bulk Replace All completed 6310 times faster than Batch Replace All when one million search/replace pairs existed (See test results).

Bulk Replace All does not support regular expressions, number ranges, or strings including newlines.