ターミナルで軽快に動くテキストエディターに、ついに色がついた。

MicrosoftのOSSプロジェクト「Edit」がv2.0.0にアップデートし、待望の構文ハイライト機能が実装された。CLIエディターが苦手だったコードの可読性問題を、独自開発の軽量ハイライターで解消している。

この記事でわかること:

  • v2.0.0で追加された構文ハイライトの仕組みと対応言語
  • 行移動・行選択・インデントなどキーボード操作の強化内容
  • Windows・macOS・Linuxへのインストール方法

Microsoft「Edit」とは

https://github.com/microsoft/edit

MS-DOS時代のテキストエディターに着想を得た、ターミナル向けの軽量エディターだ。VS Codeに近い操作感を持ちながら、マウスがなくても使いやすいUIを実現している。Rustで書かれたオープンソースプロジェクトで、ライセンスはMIT。Windows・Linux・macOSで動作する。

v1系は基本的な編集機能を持つシンプルなエディターだったが、エンジニアからは「構文ハイライトがない」という声が多かった。v2.0.0でその課題に正面から取り組んだ。

目玉: 独自開発の軽量構文ハイライター

v2.0.0の中核となる新機能がLSH(Lightweight Syntax Highlighter)だ。

LSHはMicrosoftが独自に設計したハイライトシステムで、正規表現と制御フローを組み合わせた小さなプログラミング言語をベースにしている。特徴は3つある。

まず、フットプリントが約40kBと非常に小さい。新たな言語を追加してもバイナリサイズはほとんど増えない。次に、処理速度が100MB/秒以上と高速で、大きなファイルでも表示が遅くならない。そしてLSHコンパイラー自体がOSSで公開されており、コミュニティが対応言語を追加しやすい設計になっている。

現時点の対応言語はHTML・JavaScript・Markdown・JSONなど十数種類。v2.0.0のリリースノートでは、今後も広く使われる言語への対応を歓迎するとしており、コントリビューション参加を呼びかけている。

また、settings.jsonへの対応も始まった。現時点ではfiles.associationsのみのサポートで、ファイルパスや拡張子を言語にマッピングできる。これにより、慣例外の拡張子を使うファイルでも正しくハイライトが適用される。

キーボード操作が大幅に強化

編集操作の効率が上がるショートカットが複数追加された。

Alt+/で行の移動ができるようになった。コードの順序を入れ替える作業が、切り取りと貼り付けなしで完結する。

Tab/Shift+Tabで複数行のインデント・インデント解除が可能になった。複数行を選択した状態でTabを押すと、まとめてインデントが追加される。

Ctrl+Lで現在行を丸ごと選択する操作も追加された。行全体をコピーしたいときに便利だ。

さらに、選択範囲内のホワイトスペース(空白やタブ)が視覚的に表示されるようになり、インデントのズレを目で確認しやすくなった。

Find & Replace でキャプチャグループに対応

検索・置換機能で正規表現のキャプチャグループ$1$2など)が使えるようになった。

たとえば (\w+)_(\w+) というパターンで検索し、$2_$1 に置換すると、アンダースコアで区切られた単語の順序を一括で入れ替えられる。ファイル名のリネームやコードのリファクタリングで威力を発揮する機能だ。

CLIからフォルダを開くと選択ダイアログが表示

edit フォルダ名 と実行してフォルダを指定した場合、ファイル選択ダイアログが開くようになった。以前はフォルダを引数に渡すとエラーになっていたが、自然なフローでファイルを選べるようになっている。

ファイルピッカーのソート順も改善されており、数字を含むファイル名を自然順(file2.txtfile10.txtより前)で並べるようになった。

バグ修正

v2.0.0では多くのバグも修正されている。Linux環境でのUnicodeテキスト入力の文字化けや、Unicodeファイル書き込み時のファイル破損などが修正された。macOSのタッチパッドによる水平スクロールの問題も解消している。また、Linuxビルドにnightly Rustが不要になり、stable Rust(1.93以上)でビルドできるようになった。

インストール方法

Windowsの場合、WinGetで一発インストールできる。

winget install Microsoft.Edit

macOSはHomebrewで導入可能だ。

brew install msedit

Linuxはディストリビューションのパッケージマネージャーか、インストールスクリプトでソースからビルドする。

curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/microsoft/edit/main/assets/install.sh | sh

バイナリはGitHubのリリースページから直接ダウンロードもできる。

v3ではUIテーマに対応予定

次のメジャーバージョンv3では、小型CSSパーサーが導入される予定だ。これによりUIのカラーテーマを設定ファイルで変更できるようになる見込みで、エディターのカスタマイズ性がさらに高まる。

シンプルなCLIエディターとして出発したEditは、v2.0.0で実用レベルの開発環境として一段階成熟した。特に構文ハイライトは、CLIオンリーの環境でコードを読む機会が多いエンジニアにとって効果が大きい。