世界を動かす技術を、日本語で。

マイクロソフト、Rustで書かれたクラシックなMS-DOSエディタをLinux向けにリリース

概要

  • MS-DOS Editor に敬意を表したシンプルなテキストエディタの紹介
  • VS Code風の操作感 とモダンなUIを特徴
  • 初心者でも扱いやすい設計
  • インストール方法ビルド手順 の解説
  • パッケージ管理者向け注意事項 とICUライブラリ設定について記載

シンプルなテキストエディタ「Edit」概要

  • MS-DOS Editor へのオマージュを込めたシンプルエディタ
  • VS Code に似たモダンなインターフェイスと入力操作
  • ターミナル未経験者でも直感的に使える設計
  • アクセシビリティ重視 のユーザー体験
  • プロジェクトの目的: 誰でも簡単に使えるエディタの提供

インストール方法

  • Releasesページ からバイナリ直接ダウンロード可能
  • Windows :WinGetで最新版インストール
    • コマンド例:winget install Microsoft.Edit

ビルド手順

  • Rust のインストール必須
  • nightlyツールチェーン の導入
    • コマンド例:rustup install nightly
    • もしくは環境変数RUSTC_BOOTSTRAP=1を設定
  • リポジトリのクローン
  • リリースビルド実行
    • コマンド例:
      • cargo build --config .cargo/release.toml --release

パッケージ管理者向け注意事項

  • 実行ファイル名 :「edit」が正式名称、「msedit」が代替名
    • 既存コマンドとの競合を考慮し「msedit」推奨
    • 「ms-edit」等の名称は避ける
    • 可能であれば「edit」エイリアス付与を推奨

ICUライブラリ設定

  • ICUライブラリ は検索・置換機能で任意依存
  • デフォルトでバージョン接尾辞なしSONAMEを参照
    • Windows:icuuc.dll
    • macOS:libicuuc.dylib
    • UNIX等:libicuuc.so
  • インストール環境で異なるSONAMEの場合、 環境変数 で設定
    • 例:
      • EDIT_CFG_ICUUC_SONAME=libicuuc.so.76
      • EDIT_CFG_ICUI18N_SONAME=libicui18n.so.76
  • エクスポート記号 にバージョンやプレフィックスがある場合、追加設定
    • EDIT_CFG_ICU_CPP_EXPORTS:C++シンボルを探す場合にtrue
    • EDIT_CFG_ICU_RENAMING_VERSION:バージョン番号指定(例:76)
    • EDIT_CFG_ICU_RENAMING_AUTO_DETECT:自動検出(非推奨、UNIXでデフォルト有効)
  • 設定確認にはcargo test -- --ignored実行が推奨

Hackerたちの意見

楽しいね。正直、これは誰のためなのかよくわからないけど、楽しそうだ。

実は、readmeにちゃんと書いてあるよ: 「目標は、ターミナルにあまり慣れていないユーザーでも簡単に使えるエディタを提供することです。」

LSPサポートやripgrepによる検索があれば、喜んでvimをこれに置き換えるよ。今はHelixを使ってるけど、いいTUIが好きなんだ。

これは、Windows Terminalを使ってファイルを編集したい人のためのものだよ。古いeditコマンドは2006年からWindowsでサポートされてないから、それ以来コマンドラインで使えるMicrosoft提供のエディタがなかったんだ。これだけ速いエディタがあるのはすごいね。 https://github.com/microsoft/edit/pull/408 > 「改行を探すためのSIMDルーチンを書くことで、速度を125GB/sまで上げることができる。」

ノートパッドより全然良くなったね。

俺にとっては、ターミナルでnanoの代わりに使える、もっとまともな選択肢だね。viは大嫌いだから。

これが1週間で3回も投稿されたなんて、すごく盛り上がってるね。1. 作者から - https://news.ycombinator.com/item?id=44034961 2. Ubuntuの発表 - https://news.ycombinator.com/item?id=44306892 そしてこの投稿。

これもあるよね: https://news.ycombinator.com/item?id=44341462

以前は、このエディタのターゲットオーディエンスの人たちにmicro[1]を勧めてたんだけど、これからどうするべきか考え中。 -- 1: https://micro-editor.github.io/

個人的には、そうは思わないな。editはシンタックスハイライトすらサポートしてないし(少なくとも、試したときはそうだった)。

最後に確認したとき、マイクロはバイナリファイルサイズに基づいてマクロと呼ばれるべきだったよね。

これは「やりたかったから」プロジェクトだね。そういうの、俺もたくさんやったことあるから気持ちわかるよ。でも、Turbo VisionをFPCに書き直して、半ダースのターゲットにコンパイルするのは20年も前からあるんだ。Turbo Visionは、現存する中で最高のテキストモードウィンドウライブラリだと思う。面白いのは、テキスト画面全体を配列にマッピングできるところだね。例えば、こんな感じ: var Screen: Array[1..80,1..25] Of Byte Absolute $B800; // こんな感じだったと思う。Turbo Visionがもたらしたのは、動かせる(非)モーダルウィンドウだよ。基本的には、その配列をループでたくさん書き換えることになる。かなりサクサク動くよ。このライブラリでたくさんお金を稼いだんだ。

どうやってそれでお金を稼いだのか、もしよければ教えてほしいな。

興味がある人のために、Unicodeにも対応したC++のTurbo Visionのモダンポートがこれだよ: https://github.com/magiblot/tvision

新しいモダンなTUIフレームワークを見るたびに、がっかりするのはいつも同じ。「ああ、これってTurbo Visionほど良くないな」って。

array[1..25, 1..80] of Word absolute $B800:0000。TPの配列は行優先順に配置されていて、各文字は2バイトで表されていた。1つは文字自体を示し、もう1つは背景色を示す。だから、さらに良いのは、array[1..25, 1..80] of packed record ch: char; attr: byte end absolute $B800:0000。モノクロテキスト表示(モード7)のために$B800を$B000に置き換えて、例えばHerculesで使う。

1993年の頃、バイナリファイルをeditで開いてハートマークを見るのが楽しかったな。

それと、DOSのデフラグのビジュアライゼーション、あと自分のセーブデータを16進数で編集するのが、今の開発者になった理由だね。

フェイクだね。青くないし。

editが大好きだった。昔の頃、あれが一番のお気に入りエディタだったんだ。ちゃんと動いて、基本的なことをすごくうまくやってくれたし、仕事をこなしてくれた。戻ってきてくれて嬉しいな。

本当に気になるんだけど、こういうプロジェクトがマイクロソフトみたいな大企業でどうやって承認されるの?これは開発者たちのサイドプロジェクトなのか、それとも何かの製品ロードマップの一部なの?どうやってリーダーシップを説得して、これに時間を使わせたの?

彼らが説明していたように、コマンドラインで動くテキストエディタが必要だったんだ(Windows Coreサーバーのインストール用)。SSHを通じても動くし(最近のWindowsにはSSHサーバーが含まれているから、SSHで完全に管理できる)、viに慣れてないWindows管理者でも使える(つまり、モーダレスエディタ)。

誰かがLinuxマシンにまた別のマイクロソフトのエディタを求めたの?

次はEdlinだね。サポートラインでの昔を思い出す。「edit autoexec.batをタイプして.....」みたいな。