EmEditor v22.1.0 發布(含技術評論)!

我們發布了 EmEditor v22.1.0

EmEditor Professional v22.1 的一個主要功能是能使用 V8 JavaScript 引擎。許多使用者請求了這個功能(包括 1)。之前版本的 EmEditor 使用的是 JScript,它是基於 IE 瀏覽器Active Scripting 技術實現的。雖然這具有支持許多其他 Active Scripting 語言的優勢,例如 VBScriptPerlScriptPHPScriptPythonRubyScript,但它不支援最新版本的 JavaScript。 EmEditor Professional v22.1 現在支持現代 JavaScript,同時仍支持舊的 JScript 和其他 Active Scripting 語言

預設情況下,您的 JavaScript 巨集仍將使用舊的 JScript 引擎運行。要為您的 JavaScript 巨集使用 V8 引擎,您可以在巨集的頂部添加以下行:

#language="v8"

如果您想預設為所有 JavaScript 巨集使用 V8,您可以在巨集功能表上選擇自訂,並在選項頁面選擇使用 V8 作為 JavaScript 引擎選項。如果您需要運行 JScript 的巨集,同時選擇 V8 作為預設設定,您可以在 JScript 巨集的頂部添加以下行:

#language="JScript"

更多信息,請參考 「常見問題解答:如何使用 V8 引擎?」

對現代 JavaScript 的支持使得使用許多第三方庫成為可能。例如,Luxon 庫可讓您輕松處理日期和時間,像這樣:

#language="v8"
#include "luxon.min.js"
alert( luxon.DateTime.now().setZone('America/New_York').minus({weeks:1}).endOf('day').toISO() );

使用 Currency.js 庫,您可以使用貨幣進行算術運算而不用擔心常見問的小數點錯誤。例如,

#language="v8"
#include "currency.min.js"
var d = currency( 0 );
for( i = 0; i != 10000; ++i ) { 
    d = d.add( 0.01 );   // 10000 times $0.01
}
alert( "$" + d );  // result is $100.00 as expected. It might not be an expected result if currency.js is not used.

目前,EmEditor 巨集不支援 JavaScript 模塊,因此您不能使用 Node.jsimport 關鍵字來匯入庫。要使用第三方庫,您必須下載一個庫(通常帶有 .min.js 副檔名),並使用 #include 包含它。有關使用第三方庫的更多信息,請參閱 「常見問題解答:如何將庫匯入巨集?」

如果您決定將現有巨集作為 V8 運行,請確保所有關鍵字都區分大小寫。例如,如果您的巨集包括:

redraw = false

您需要將其重寫為:

Redraw = false

V8不像 JScript 那樣支持用 ActiveXObject 對象建立對象。不過,對於常用的方法,您可以使用包含在 EmEditor 巨集中的 Shell 對象中新增的方法。例如,如果您的巨集包括:

fso = new ActiveXObject( "Scripting.FileSystemObject" );
if( fso.FileExists( filename ) ) {
    fso.DeleteFile( filename );
}

您需要將其重寫為:

if( shell.FileExists( filename ) ) {
    shell.DeleteFile( filename );
}

巨集始終在 V8 上異步運行,並且在某些情況下可能比 JScript 慢。 目前,使用 V8 作為 JavaScript 引擎選項預設處於關閉狀態。這是因為它與舊的 JScript 巨集存在一些不兼容問題。然而,支持現代 JavaScript 是不可避免的趨勢,V8 可能會成為未來版本的預設設定。

V8 JavaScript 引擎 的支持是通過使用 Microsoft Edge WebView2 控件。WebView2 控件包含在最新版本的 Windows 10/11 中。如果 V8 巨集未在您的計算機上運行,請將您的操作系統更新到最新版本的 Windows 10/11,安裝最新版本的 Microsoft Edge >,或下載並安裝 WebView2 運行時(Evergreen Bootstrapper 或 Standalone Installer)

網頁預覽 外掛程式也支持使用 WebView2 控件來用 Microsoft Edge 瀏覽器顯示 HTML 檔案。與巨集不同的是,這個選項預設是開啟的,您可以在網頁預覽外掛程式屬性中選擇瀏覽器引擎。

EmEditor Professional v22.1 包括幾個新命令。其中一個是排序/刪除選區內重複的分割字串。假設您有一個單字清單:

orange, banana, apple, banana, pineapple, apple

您可以選擇這些詞並在排序功能表中選擇排序/刪除選區內重複的分割字串命令。這將打開選區排序對話方塊,您可以在其中選擇刪除重複的分割字串選項,再勾選從 A 到 Z 排序。結果會變成:

apple, banana, orange, pineapple

在許多情況下,此命令會自動檢測分隔符號,在本例中為 “, “(一個逗號和一個空格)。

另一個新命令可以用來處理 CSV 欄。使用欄排序命令,您可以在指定行(通常是第一行或標題)對 CSV 欄進行排序。以前,您只能對行進行排序。現在,您可以選擇刪除重複的欄(在指定行)或刪除包含空儲存格的欄(在指定行)。

最後一個新命令管理欄命令取代了之前的移動/複製列命令。當您在CSV 的欄標題的右鍵單擊功能表中選擇管理欄命令時,會顯示管理欄對話方塊。您可以從欄標題的清單中選擇一列或多列,然後拖放以移動或重新排列所選欄。您還可以右鍵單擊清單並選擇複製貼上來建立選取的列的副本。此外,您還可以點擊刪除按鈕來刪除所選列或點擊排序按鈕對所有欄進行排序。

您可以將這些新命令的操作記錄到巨集中。排序/刪除選區內重複的分割字串命令將被記錄為 Selection 對象的 Sort 方法。例如,如果選區包含以逗號分隔的單字,則以下程式碼會將所選單字從 A 到 Z 排序。

document.selection.Sort( ",", "A+" );

管理欄命令將被記錄為 Document 對象的 RearrangeColumns 方法。例如,目前的的 CSV 文檔包含 3 欄,下面的程式碼會將第一欄移動到文檔的右端。

document.RearrangeColumns("2,3,1");

最後,在 EmEditor Professional 中的由 Makoto Emura 開發的 CommitList (Git) 外掛程式 ,也有新的更新,例如添加了建立提交、變更分支、暫存變更和復原變更的功能。

EmEditor Professional 和 Free v22.1 包括許多來自使用者反饋的新功能。例如,新版本在數字範圍中支持沒有分隔符的日期格式(例如,「yyyyMMdd」)。例如,您可以使用數字範圍運算式:

File[20221205 , 20221207 "yyyyMMdd" ].txt

來尋找、篩選或抽出以下行:

File20221205.txt
File20221206.txt
File20221207.txt

Makoto 重新設計了故障報告對話方塊並添加了從 EmEditor Professional/Free 提交故障報告的功能。這減輕了您尋找故障報告檔案並通過電子郵件發送它的負擔。我們對新功能感到非常樂觀,因為我們在開發測試版時已經收到許多反饋,這使我們能夠在發布此正式版本之前修復錯誤。我們感謝那些向我們發送故障報告的使用者。

當我們設計用故障報告提交的功能時,我們確保使用者不會向我們發送任何個人信息。此外,您可以決定是否要提交故障報告。如果您沒有點擊或選擇故障報告對話方塊中的提交 按鈕,您的任何數據都不會提交。

最後,EmEditor Professional 和 Free v22.1 使用由 SIMD 指令集編寫的多執行緒程式碼,它大大提高了計算選區內的字元數的速度。所選字元數會顯示在狀態列中,Unicode 代理項會被計為一個字元。

Makoto 提出了另一個想法,即將我們的桌面安裝程式和可攜式檔案從 emeditor.com 移動到 emeditor.info。新域 (emeditor.info) 利用內容分發網絡 (CDN) 使我們能夠快速托管和分發檔案。此域變更可能會觸發某些安全軟體的警報,但您可以安全地忽略和停用由於域變更而引起的警報。

希望您喜歡 EmEditor,無論您使用的是專業版(Professional)還是免費版(Free)。如果您有任何問題、功能請求或想法,請隨時聯繫我們到論壇中留言

感謝您使用 EmEditor!
Yutaka Emura

詳細信息和屏幕截圖,請參閱 EmEditor v22.1 新增功能

此發布還包括了所有在在開發 v22.1 時修復的 bug.

如果您使用的是桌面安裝程式版,那您可以到說明功能表下選擇檢查更新來下載最新版本。 如果此方法失敗,請下載最新版本,並運行下載的安裝程式。 如果您使用的是桌面可攜式版,則可以轉到下載頁面下載最新版本。市集應用版可以在幾天後通過 Microsoft 市集更新( 64 位 / 32 位)。如果您使用 winget,您可以輸入 “winget install emeditor” 來安裝最新版本的 EmEditor(自動檢測 64 位或 32 位)。