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

UbuntuでのMicrosoftの新しいCLIテキストエディタの使用

概要

Microsoftが新たに公開したオープンソースCLIテキストエディタ「Edit」について解説。 EditはRust製で、MS-DOS Editorのリメイク版。 WindowsだけでなくLinuxやmacOSでも利用可能。 VSCodeに似たキーバインドや直感的な操作感が特徴。 シンプル・高速・軽量な設計で、導入方法も紹介。

Microsoftの新CLIエディタ「Edit」とは

  • Microsoft が開発した新しい オープンソースCLIテキストエディタ 「Edit」
  • MS-DOS Editor の現代的リメイク・リブート
  • Rust で実装、 VSCode ライクなインターフェースと入力操作
  • Windows における「CLIテキストエディタが標準搭載されていない」課題への対応策
  • LinuxmacOS でも動作、クロスプラットフォーム対応

Editの特徴と利点

  • VSCode 利用者には馴染みやすい キーバインド
  • vimnano のようなモード切替不要な モードレス設計
  • マウス・キーボード 両対応の直感的な操作性
  • テキストUI(TUI) による学習コストの低減
  • 大容量ファイル(1GB超) も高速に扱える設計
  • 複数ファイル同時編集 も容易

主な機能

  • 検索・置換 (大文字小文字/正規表現対応)
  • ウィンドウサイズ変更時のワードラップ (オプション)
  • タブ/スペースのインデント設定
  • ファイルエンコーディング指定・変更
  • 改行コード(LF/CRLF) の切り替え
  • 複数ファイルの同時オープン
    • シンタックスハイライトやカラースキーム、コマンドプロンプト等は現状未対応
    • 今後、カラースキームや設定用TUIなどの機能追加予定

LinuxユーザーにとってのEdit

  • Windows向けが主目的 だが、 LinuxやmacOSでも利用可能
  • VSCodeユーザーや初心者 にとっては学習コストが低いCLIエディタ
  • 軽量(約250kB)・高速起動 が魅力
  • オープンソース で誰でも改良・フォーク・パッケージングが可能

UbuntuでのEdit導入方法

  • 公式バイナリ をGitHubリリースページからダウンロード
    • アーキテクチャに合ったバイナリを選択
    • アーカイブを展開(Nautilusで右クリック→展開)
    • ターミナルで展開フォルダへ移動:cd /path/to/
    • 実行:./edit
  • Snapパッケージ (非公式)でのインストール
    • App Centerで「msedit」を検索してインストール
    • またはコマンド:sudo snap install msedit
    • 起動:msedit
  • Arch LinuxManjaro では公式パッケージあり

まとめ

  • Edit は「シンプル・高速・直感的」なCLIテキストエディタ
  • VSCodeユーザーCLI初心者 にもおすすめ
  • 機能は最小限 だが、今後のアップデートに期待
  • Windows/Linux/macOS で手軽に利用可能
  • 興味があれば一度試してみる価値あり

Hackerたちの意見

これ見てみたけど、なかなか面白いね。ただ、プログラミング的にはちょっと物足りないかな。例えば、初めからシンタックスハイライトがないみたいだし。CTRL+C/VやマウスサポートがあるTUIテキストエディタが欲しいなら、microをチェックしてみるといいよ。https://github.com/zyedidia/micro

microを数年使ってたけど、最近はhttps://github.com/craigbarnes/dteに切り替えたよ。数年前に使ってたあまり知られてない90年代っぽい代替品はneだね。https://github.com/vigna/ne/

学生の頃(中学・高校)には、DOSベースのIDEであるQuickBasicを使ってプログラミングしてたし、最終的にはTurbo C++に移ったよ。あの青い背景、懐かしいな。素早い編集にはvimが定番だね。ターミナルに縛られているときは、ほんとに強力な武器だと思う。ただ、今のAIや高速なエディティングの時代では、GUIの方がいいと思う。コンテキストの切り替えがスムーズになるし。ターミナルエディタは、集中してコーディングするには最適だけどね。これはあくまで私の意見だけど。

数年前、ctrl-C/Vが使えるTUIテキストエディタが欲しくて、自分で作ったんだ。それ以来、毎日使ってるよ:https://www.github.com/marssaxman/ozette/ マウスサポートには興味なかったけどね。

誰かPC-WriteをLinuxに移植することを考えたことあるのかな… https://en.wikipedia.org/wiki/PC-Write 80年代にPC-Writeで百万行以上のコードを書いた気がするけど、あんなに強力なエディタが消えてしまったのはちょっと不思議だな。あれ、ソースはどこかにあるはずだし、いつかLazarus/Free Pascalのプロジェクトとして面白いかもね。

ドラザーズ(druthers)名詞(複数形のみ) (アメリカ、カジュアル、しばしばユーモラス)願望、好み。

ショートカットの話だけど、開発者たちがCtrl+CやCtrl+Vをもっと覚えようとしないのは不思議だよね。今やほとんどどこでも使われてるのに、ターミナルだけは別みたい。これってIBMのCommon User Access (CUA)のデザイン基準から来てると思うんだ。特に、Ctrl + 何かの文字を押すと、単語単位で動けるようになるのが面白いよね。例えば、Ctrl + 左矢印やCtrl + 右矢印で文書の単語を飛ばせるし、Ctrl + バックスペースで一度に単語を削除できる。これ、もっと一般常識になってもいいと思うんだけど。ブラウザのURLバーにマルチラインの文書をコピー&ペーストすると、ほぼ確実に一行のフォーマットに整形されるし。

ずっと前、Ctrl-Cは様々なターミナルで'Break'にマッピングされてて、実行中のプログラムを停止させる便利な機能だったんだ。デスクトップやGUIでは、Ctrl-Cは(C)opyにマッピングされてて、記憶しやすいし、GUIプログラムを強制終了するのはあまり役に立たないからね。

「ターミナル以外では」…もちろん、Macではどのアプリでも同じショートカットが使えるから、cmd+c/vを使うよね。LinuxではデフォルトでターミナルだけCtrl+Shift+C/Vを使うのがすごく気になった。kittyターミナルには、テキスト選択があるかどうかでCtrl+Cが正しく動作する素晴らしい機能があって、私にはすごく合ってる。

例えば、マルチラインのドキュメントをブラウザのURLバーにコピー&ペーストすると、ほぼ確実に一行形式に整形される。そんなこと知らなかった。最近、パスワードをURLバーにペーストして、ペーストをブロックしてるウェブサイトのパスワードフィールドにドラッグできるって知った(少なくともFirefoxでは)。セキュリティ上はあまり良くないアイデアかも(テレメトリーとか?)。でも、驚いたよ。それに、ペーストをブロックしてるクソサイトが、Ctrl + insert や Ctrl + Shift + v をブロックし忘れることもあるのに気づいた。私は普段この問題に悩まされないけど、パスワードマネージャーのプラグインが大体うまく動くからね。

ターミナルでテキストを切り取るのにCtrl-Xをあまり使わないから、ターミナルの設定を変えてCtrl-Xをsigintに、Ctrl-Cをコピーにしたよ。これで体験が良くなったし、Xが「キル」に見えるのもいいね :)

IBMがこのスキームを発明したわけじゃないよ。Apple LisaにはCmd+X,C,Vがあったし、初期のMacアプリはK,C,Vに切り替えたけど、どこかでまた戻ったみたいだね。

macOS(昔のOS X)の好きなところの一つは、GUIアプリのショートカットとターミナルの制御シーケンスが、必要なところでは互いに排他的で、便利なところでは共有されているところなんだよね。どのアプリでもテキストをナビゲートするのがすごく自然に感じる。Linuxのウィンドウマネージャーがこのアプローチを取ってないのは意外だな。

「開発者がCtrl+CやCtrl+Vのショートカットをもっと覚えようとしないのは不思議だな。どの開発者もこれらのショートカットを覚えてないわけないでしょ?なんかバカな世界に住んでるみたいだね。」

カット、コピー、ペーストのCUAバインディングは、実はShift+Delete、Control+Insert、Shift+Insertなんだ。MicrosoftはWindows 3.0のためにMacintoshからX/C/Vのショートカットを採用したんだけど、CommandをControlに置き換えたんだよね。Altはメニューを呼び出すために使われてたし、既存のCUAショートカットもそのままサポートされてる。

タッチタイピングを学ばない開発者もいるんだよね。信じられない。Caps Lockを追加のCtrlにして、Emacsのキーバインディング(ほとんどのIDEや多くのコマンドラインでサポートされてる)を使うと、手が矢印キーまで移動しなくて済むから、さらに生産性が上がるんだよね。(Viのキーバインディングについても同じことが言える。)多くの人が、後で楽になるために数時間投資したくないっていうのは、不思議な現象だよ。

Ubuntuでは、Ctrl+SHIFT+C/V/Xなんだよね。Ctrl+C/Vが効かないこともあって、Bashが全く実装してないのかと思ってた。Ubuntuを使い始めて7年くらいで、やっと正しいやり方を知ったよ。

記事を書くためにかけた努力には感謝だけど、いくつかの歴史的背景や技術的な違いが欠けていて、異なる概念が混同されてる気がする。例えば、TUI(テキストユーザーインターフェース)とCLI(コマンドラインインターフェース)はかなり違うよね。「CLIテキストエディタ」って、ECHOコマンドを使ってファイルを編集してるみたいに聞こえる。この新しいエディタは、実際には1991年のクラシックなMS-DOS 5 EDITプログラムの再実装なんだ。その頃、VIMはまだとても新しかったから、「VIMのミーム」は技術の風景にはなかった。VIMの前にはviがあったし。Usenetの投稿では、Googleの15年前くらいに、面白い一文を「タグライン」として追加するのが流行ってた。例えば、「viを終了するには?システムを再起動しろ。」みたいにね。そして、NotepadだけがWindows開発者の選択肢じゃなかったよ。EDITやDR-DOS EDITOR、Brief、WordPad、EditPad、Notepad++など、他にもたくさんあったんだ。

感嘆符ってviでも使えるの?vimみたいに。終了する方法は、:!killall vi だよね。もちろん、CLIのテキストエディタならedも該当するよね?

Usenetの投稿では、Googleの15年前くらいに、下に「タグライン」っていう面白い一文を追加するのが流行ってた。私たちはそれを「サイン」と呼んでたよ。しかも、.sigっていうファイルに保存されてたんだ。

TUI(テキストユーザーインターフェース)ってみんな使ってるけど、私はずっとCUI(キャラクターユーザーインターフェース)って呼んでたから面白いな。私はDOSとWindowsのバックグラウンドがあるけど、TUIは*unixの世界から来たみたいだね。それに、NotepadだけがWindows開発者の選択肢じゃなかった。Dr Dobbsや他の技術雑誌には、いろんなエディタの広告が載ってたし、リンカーは80年代のプログラマーたちの悩みの種だった。プログラマー向けのソフトウェアの時代があったけど、ほとんど忘れられてるみたい。

用語の混同に気づいたけど、これって元々のMicrosoftの発表から来てるみたいだね! https://devblogs.microsoft.com/commandline/edit-is-now-open-...

面白いことに、Hacker Newsが時々やる「もっとビューを増やすための変な再ブースト」が、まるで私が5時間前にそのことを言ったかのように見せてるんだ。* https://news.ycombinator.com/item?id=44310682 実際には2日前に書いたのにね。(-:

もうずっとvimを日常的には使ってないけど、「Vimの抜け方?」ってジョークは今でもなんか面白いよね。最近見たのは@iamdeveloperの古いツイートで、「Vimを使って2年くらいになるけど、抜け方がわからないから使ってる」って言ってた。:wq(ごめん、言いたかっただけ)。

vimの前はviだった。viの前はexだった。(exの前はed - Unixの最初のエディタ)Vimにはexが組み込まれてて、ノーマルモードでQを押すとExモードに入るよ。3-5行のコマンドラインが下に表示されて、Exで作業できる。実用的な使い方は知らないけど、ちょっとした新鮮さのためにやったことはある。お約束:Exモードを抜けるには:vi[sual]を使って、これがViの名前の由来かもしれないね。

この新しいエディタは、実は1991年のクラシックなMS-DOS 5 EDITプログラムの再実装なんだよね。あの頃、AUTOEXEC.BATを編集したり、自分でBATファイルやQBASICを書いたりしてたのを思い出すな。

‘ed’(その前の‘qed’も)を忘れてるよ。実はCLIテキストエディタなんだ。

MicroEmacsも忘れないで!1985年頃にUsenetで見かけてからずっと使ってるよ。

サクサク動くよ!完全な「DOS互換性」のために、~/.profile に alias edit=msedit を追加するのを忘れずにね。

約1年前に、DOSとWindowsのエディタの歴史について書いた記事があるんだ。https://open.substack.com/pub/blogsystem5/p/a-cli-text-edito... これは、MicrosoftがWindowsにテキストエディタを再追加しようとしたGitHubの問題から始まった議論がきっかけだったんだよね。

ここでの開発アプローチは本当に興味深いね。Unixでは、これが_一つ_のクレート、libcに依存してるんだ。そのクレートはlibcのラッパーだけなんだよね。その他のすべてはプロジェクト自体で実装されてる。これってちょっと驚きだな。基盤のライブラリからクロスプラットフォームのターミナル処理システムまで、すべて独自に持ってるのに、termiosみたいな実績のあるクレートを使わないのはなんでだろう?わからないけど、Rustの世界ではかなり珍しいね。

たぶん、Windowsがあるところにはどこでも行ける必要があって、依存関係をたくさん引き入れることで安全性を証明しなきゃいけないターゲットを背負いたくなかったからじゃないかな。(特に、このエディタが動くWindowsのインストールは、組み込みのように頻繁に更新されないかもしれないし)必要なコードを書く方が、引き入れたいクレートごとに弁護士やセキュリティ担当者に相談するよりも早かったのかもね。

ここを読んでみて:https://news.ycombinator.com/item?id=44031529 。開発者のxyrselfがコメントで選択肢や考慮された代替案について話してるよ。

作者が自分で答えてるよ: https://news.ycombinator.com/item?id=44034961 その理由にはほぼ同意だな。

このツールの元の作者って誰か知ってる人いる?Linuxで試してみたら、めっちゃ良かった!使いやすさ、シンプルさ、直感的な操作。最初にこれを使ったのはLinuxに入る前だったと思う。でも、Linuxのエディタ、例えばnanoやed、vim、emacsなんかは、宗教的、政治的、情熱的な開発者たちがいても、この直感的なインターフェースを実現できなかったんだよね。デザインをちょっとコピーするだけでも、Linux初心者には助けになったはずなのに、デフォルトエディタとしてNanoを出すのはどうかと思う。

たぶん、80年代後半から90年代初めにかけてMicrosoftで働いてた人なんじゃないかな。: https://en.wikipedia.org/wiki/MS-DOS_Editor

1ヶ月前にHNスレッドで作者が投稿してたのを覚えてるよ。: https://news.ycombinator.com/item?id=44034961

Microはナノよりずっと直感的だけど、Editの方がいいと思うな。早く本番のディストロに展開してほしいね。

これに触発されて、macOSでDocker経由でEditを動かしてみたんだ。これが動いたやつ(AppleシリコンにDockerがインストールされてる人なら誰でも動くはず、イメージをGitHubコンテナレジストリにプッシュしたよ):docker run --platform linux/arm64 \ -it --rm \ -v $(pwd):/workspace \ ghcr.io/simonw/alpine-edit このコマンドをディレクトリで実行すると、そのディレクトリ内のファイルに対してEditが開くよ。詳しくはここにメモがある:https://simonwillison.net/2025/Jun/21/edit-is-now-open-sourc... - GitHubコンテナレジストリに公開する新しいTILもここにあるよ:https://til.simonwillison.net/github/container-registry macOSでソースから直接コンパイルすることもできるよ。手順はここにあるけど、まだ試してない:https://github.com/microsoft/edit/blob/main/README.md#build-...

macOS用にネイティブで作ったんだけど、めっちゃ快適に動いてるよ!

ちょっと気になるんだけど、なんでソースからコンパイルする前に、いきなりコンテナイメージを作ったの?

1990年頃にDOSでBriefを使ってたのを思い出す。めっちゃ良かったな。Linuxの世界ではemacs派だけど、またBriefを使いたいな。