Build 2025でWindowsターミナルで動作するテキストエディタ
「Microsoft Edit」が発表
Microsoftは、5月19~22日(現地時間)に米国で開催した「Build 2025」で、Windowsターミナルで動作するテキストエディタ「Microsoft Edit」を発表した。
かつてのMS-DOS 5.0英語版には、Editor(MS-DOS Editor)と呼ばれる、コンソールベースのテキストエディタが付属していた。Quick BASICの簡易版であるQBASICが含まれており、Editorはそのエディタ機能を利用していた。また、英語版の32bit版WindowsにはWindows 2000以降にも含まれていた、しかし、64bit版Windowsでは、16bit互換環境が廃止されたため入っていない。
今回発表されたMicrosoft Edit(以下、Edit)は、MS-DOS Editorとは直接には関係なく、新たにWindowsターミナル用に作られたものとなる。ソースコードが公開されているGitHubリポジトリ(https://github.com/microsoft/edit)の開発者を見るに、Windowsターミナルの関係者のようなので、その関連で開発されているのだと思われる。
Win32環境でもWSL(Linux)環境でも、vimやemacsなどの著名なテキストエディタが動作する。なので、不要と言えば不要ではあるのだが、こうしたエディタは高機能過ぎるのも確かであり、これから使い始めるユーザーにとっては少々敷居が高い。今のところ、Editには複雑な機能はなく、編集機能としては検索・置換機能がある程度だ。
そのEditはオープンソースで開発中
Editは、オープンソース・プロジェクトとして開発中で、GitHubにソースコードがある。コンソールベースとはいえ、今は21世紀である。EditはRust言語で記述されている。
Rust(ラスト)は、メモリ安全性などを最初から考慮して設計された言語で、Microsoftは数年前から、Windowsカーネルやデバイスドライバ開発などのシステムプログラミングに適した言語として高く評価していた。2023年にプレビュー版Windows 11でカーネルの開発で部分的にRustを利用。以後もWindows 11にはRustを利用したコードがカーネルに含まれている。
Editは、もちろんWindowsカーネルほど重要なプログラムではないが、Microsoft自体は、C/C++からRustへの移行を進めており、その一環なのかもしれない。もちろん、Rustのメモリ安全性などの特徴は、Editのようなアプリケーションでも重要な問題である。Rustを使うことで、障害発生のリスクを下げることが可能だ。
ざっとEditのソースコードを見てみたが、画面の制御は、VTエスケープシーケンスを使っているようだ。現状、Windowsのコンソール・アプリケーションには、大きく2つの開発方法がある。1つは、VTエスケープシーケンスを使う方法、もう1つは、Conhost時代からあるConsole APIを使う方法だ。
VTエスケープシーケンスを使う方法は、あくまでも文字コードとして仮想端末経由で送受信ができる。このため、エスケープシーケンスによる表示は、ネットワークで接続されたリモートマシン上でも可能になる。
これに対してコンソールAPIは、ローカルでのAPI呼び出しであるため、常にデスクトップにあるコンソールウィンドウ内に描画をする。こうした問題があるため、Windowsターミナルが作られ、VTエスケープシーケンスが実装された。
EditもVTエスケープシーケンスで動作しているため、たとえば、sshで接続したリモート側で起動しても、ちゃんとリモート側のsshセッション内でEditを使うことができる。
ただ、現在のところEditは「作りたて」であり、おそらくは今後も機能追加や拡張などが進むと思われる。また、ソースコードを見たところ、VTエスケープシーケンスが直接必要な場所に書かれているなど、簡易な記述となっているところが見受けられる。
その反面、DLLになっているICU(International Components for Unicode)を、呼び出すコード(icu.rs)は興味深い。

この連載の記事
-
第486回
PC
Excelがあればなんでもできる -
第485回
PC
Windows Subsystem for Linux(WSL)のソースコードが公開された -
第484回
PC
WindowsのコマンドラインでGrapheme Clusterを正しく扱うには -
第482回
PC
WSL(Windows Subsystem for Linux)向けにFedoraディストリビューション登場 -
第481回
PC
Windows 11にそろそろ聞こえる25H2の声 -
第480回
PC
PowerShellが使う色を変更する -
第479回
PC
Copilot+ PCで利用できる「Windows Copilot Runtime」を試す ローカル推論用モデル「Phi Silica」とは? -
第478回
PC
Copilot+ PCでNPUを使ってローカル推論 「Windows Copilot Runtime」を試す -
第477回
PC
Windowsで2つの文字列を同時に含むテキストファイルを探す方法を考える -
第476回
PC
さらばSkype! Windows&MSのコミュニケーションアプリの30年 - この連載の一覧へ