EmEditor v22.1.0 출시 (기술 리뷰 포함)!
오늘 EmEditor v22.1.0을 출시합니다.
EmEditor Professional v22.1의 주요 기능은 **V8 JavaScript 엔진**을 사용하여 최신 JavaScript(ECMAScript라고도 함)를 지원하는 것입니다. 이 기능은 많은 고객이 요청한 것입니다(1 포함). 이전 버전의 EmEditor는 Internet Explorer용 Active Scripting 기술을 기반으로 구현된 JScript를 사용했습니다. 이는 VBScript, PerlScript, PHPScript, Python, RubyScript 등 다른 여러 Active Scripting 언어를 지원한다는 장점이 있었지만, 최신 버전의 JavaScript에 대한 지원은 부족했습니다. EmEditor Professional v22.1은 이제 기존 JScript 및 기타 Active Scripting 언어를 계속 지원하면서 최신 JavaScript도 지원합니다.
기본적으로 JavaScript 매크로는 계속 이전 JScript 엔진을 사용하여 실행됩니다. JavaScript 매크로에 V8 엔진을 사용하려면 매크로 맨 위에 다음 줄을 추가할 수 있습니다.
#language="v8"
모든 JavaScript 매크로에 기본적으로 V8을 사용하려면 매크로 메뉴에서 사용자 지정을 선택하고 옵션 페이지에서 V8을 JavaScript 엔진으로 사용 옵션을 설정할 수 있습니다. V8을 기본으로 선택한 상태에서 JScript로 매크로를 실행해야 하는 경우 JScript 매크로 맨 위에 다음 줄을 추가할 수 있습니다.
#language="JScript"
자세한 내용은 “FAQ: 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.js나 import 키워드를 사용하여 라이브러리를 가져올 수 없습니다. 타사 라이브러리를 사용하려면 라이브러리(일반적으로 .min.js 확장명)를 다운로드하여 #include를 사용하여 포함해야 합니다. 타사 라이브러리 사용에 대한 자세한 내용은 “FAQ: 매크로에 라이브러리를 가져오는 방법은 무엇입니까?”를 참조하십시오.
기존 매크로를 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)을 다운로드하여 설치하십시오.
WebPreview 플러그인도 WebView2 컨트롤을 지원하여 Microsoft Edge 브라우저를 사용하여 HTML 파일을 표시합니다. 매크로와 달리 이 옵션은 기본적으로 켜져 있으며, WebPreview 플러그인 속성에서 브라우저 엔진을 선택할 수 있습니다.
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 명령 집합으로 작성된 멀티스레드 코드를 사용하여 선택 영역의 문자 수를 세는 속도를 크게 개선했습니다. 선택 영역의 문자 수는 상태 표시줄에 표시되며, 유니코드 서로게이트 쌍은 하나의 문자로 계산됩니다.
Makoto는 데스크톱 설치 프로그램과 휴대용 파일을 emeditor.com에서 emeditor.info로 이전하는 또 다른 아이디어를 제안했습니다. 새 도메인(emeditor.info)은 CDN(콘텐츠 전송 네트워크)을 활용하여 파일을 빠르게 호스팅하고 전송할 수 있습니다. 이 도메인 변경으로 인해 일부 보안 소프트웨어에서 경고가 발생할 수 있지만, 도메인 변경으로 인한 것이므로 안전하게 무시하고 경고를 비활성화할 수 있습니다.
Professional 또는 Free 버전을 사용하든 EmEditor를 마음에 들어 하시길 바랍니다. 앞으로 질문, 기능 요청 또는 아이디어가 있으면 문의하거나 포럼에 글을 남겨 주십시오.
EmEditor를 사용해 주셔서 감사합니다!
— Yutaka Emura
자세한 내용과 스크린샷은 EmEditor v22.1 새로운 기능을 참조하십시오.
이번 출시에는 v22.0을 개발하는 동안의 모든 버그 수정도 포함되어 있습니다.
데스크톱 설치 프로그램 버전을 사용하는 경우 도움말 메뉴에서 업데이트 확인을 선택하여 최신 버전을 다운로드할 수 있습니다. 이 방법이 실패하면 최신 버전을 다운로드하여 다운로드한 설치 프로그램을 실행하십시오. 데스크톱 휴대용 버전을 사용하는 경우 다운로드 페이지에서 최신 버전을 다운로드할 수 있습니다. 스토어 앱 버전은 며칠 후 Microsoft Store(64비트 또는 32비트)를 통해 업데이트할 수 있습니다. winget을 사용하는 경우 “winget install emeditor”를 입력하여 최신 버전의 EmEditor를 설치할 수 있습니다(64비트 또는 32비트 자동 감지).