Microsoft Edit
(github.com/microsoft)- Microsoft Edit ist ein Editor für einfache Bearbeitungsanforderungen, der dem klassischen MS-DOS Editor Respekt zollt und zugleich eine moderne Oberfläche sowie Eingabesteuerung ähnlich wie VS Code bietet
- Ziel ist es, einen leicht zugänglichen Editor bereitzustellen, den auch Nutzer ohne viel Terminal-Erfahrung einfach verwenden können
- Unter Windows lässt er sich über WinGet, unter macOS über Homebrew und unter Linux per Installationsskript installieren, wenn die Distribution keine Binärdatei bereitstellt oder man selbst bauen möchte
- Er wird in Rust gebaut; die Konfiguration mit nightly Rust wird empfohlen, da sie die Binärgröße deutlich reduziert und die Performance leicht verbessert
- Paketmanagern wird wegen möglicher Namenskollisionen bei ausführbaren Dateien der Name
mseditstatteditempfohlen; die ICU-Bibliothekskonfiguration beeinflusst die Suchen/Ersetzen-Funktion
Zweck und Charakter von Microsoft Edit
- Edit ist ein einfacher Editor mit dem Ziel „simple editor for simple needs“
- Er zollt dem klassischen MS-DOS Editor Respekt, bietet aber eine moderne Oberfläche und eine Eingabesteuerung ähnlich wie VS Code
- Er soll ein zugänglicher Editor sein, den auch Nutzer ohne viel Terminal-Erfahrung einfach verwenden können
Installation
- Binärdateien können von der Releases page heruntergeladen werden
-
Windows
- Die neueste Version kann mit WinGet installiert werden
winget install Microsoft.Edit -
Linux
- Wenn die Distribution keine Binärdatei bereitstellt oder man selbst bauen möchte, kann das Installationsskript verwendet werden
- Voraussetzungen sind Rust, ein C-Compiler, ICU, curl oder wget sowie tar
- Die Standardinstallation installiert
mseditnach~/.local/bin
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/microsoft/edit/… | sh- Mit zusätzlichen Flags baut
--devdirekt aus dem main-Branch, und--systeminstalliert nach/usr/local/bin
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/microsoft/edit/… | sh -s -- --dev --system -
macOS
- Die neueste Version kann mit Homebrew installiert werden
brew install msedit
Build-Verfahren
- Für den Build sind eine Rust-Installation und ein Klon des Repositorys erforderlich
- Bei Verwendung von nightly Rust erfolgt der Release-Build mit folgendem Befehl
cargo build --release --config .cargo/release.toml - Bei Verwendung von stable Rust wird empfohlen, die Umgebungsvariable
RUSTC_BOOTSTRAP=1zu setzen und den Anweisungen für den nightly-Build zu folgen- Dieser Ansatz reduziert die Binärgröße deutlich und verbessert die Performance leicht
- Für einen Build mit stable Rust ohne zusätzliche Konfiguration wird folgender Befehl verwendet
cargo build --release
Optionen für die Build-Konfiguration
- Beim Build kann die Konfiguration über Umgebungsvariablen angepasst werden
EDIT_CFG_ICU*bezieht sich auf die Konfiguration der ICU-Bibliotheksnamen; Linux-Paketmanagern wird empfohlen, diese Option zu prüfenEDIT_CFG_LANGUAGESgibt die Liste der in den Build aufzunehmenden Sprachen kommasepariert an- Die verfügbaren Sprachen stehen in i18n/edit.toml
Hinweise für Paketmanager
- Der Standardname der ausführbaren Datei ist
edit, der alternative Name istmsedit - Da der Name
editmit bestehenden Befehlen kollidieren kann, werden für Paket und ausführbare Datei der Namemseditempfohlen - Namen wie
ms-editsollten vermieden werden - Wenn möglich, wird empfohlen, einen Alias
editzuzuweisen
ICU-bezogene Konfiguration
- Dieses Projekt hängt optional von der ICU-Bibliothek für die Suchen- und Ersetzen-Funktion ab
- Standardmäßig werden die plattformspezifischen ICU-Bibliotheksnamen gesucht
- Windows:
icuuc.dll,icuin.dll - macOS:
libicucore.dylib - Linux und andere:
libicuuc.so,libicui18n.so
- Windows:
- Wenn die SONAMEs der Installationsumgebung abweichen, müssen beim Build Umgebungsvariablen gesetzt werden
EDIT_CFG_ICUUC_SONAME: z. B.libicuuc.so.76EDIT_CFG_ICUI18N_SONAME: z. B.libicui18n.so.76
- Es wird angenommen, dass ICU-Symbole standardmäßig ohne
_-Präfix und ohne Versionssuffix exportiert werden, etwa in der Formu_errorName - In Umgebungen mit anderen Symbolformen können zusätzliche Umgebungsvariablen verwendet werden
EDIT_CFG_ICU_CPP_EXPORTS=true: sucht nach C++-Symbolen wie_u_errorName; unter macOS standardmäßig aktiviertEDIT_CFG_ICU_RENAMING_VERSION=76: sucht nach Symbolen wieu_errorName_76
- Wenn
EDIT_CFG_ICU_RENAMING_AUTO_DETECT=truegesetzt ist, versucht die ausführbare Datei zur Laufzeit, den Wert der renaming version zu erkennen- Da dieses Verfahren von ICU nicht offiziell unterstützt wird, wird empfohlen, sich nicht darauf zu verlassen
- Unter UNIX ist es mit Ausnahme von macOS standardmäßig aktiviert, wenn es keine andere Option gibt
- Tests der Build-Konfiguration werden mit
cargo testund dem Flag--ignoredausgeführtcargo test -- --ignored
1 Kommentare
Meinungen auf Hacker News
Das Interesse war so groß, dass dieser Beitrag dreimal in einer Woche auftauchte
und nun dieser Beitrag
Früher habe ich für die Zielgruppe dieses Editors micro empfohlen; jetzt frage ich mich, ob ich das ändern sollte
1: https://micro-editor.github.io/
editunterstützte zumindest beim direkten Ausprobieren nicht einmal standardmäßig Syntax-HighlightingIch nutze ihn als Terminal-Editor statt nano
[1]: https://craigbarnes.gitlab.io/dte/
Auch mit großen Dateien kommt er recht gut zurecht
"winget install zyedidia.micro"installieren. Er erinnert an 8-Bit- und 16-Bit-Editoren aus einer ähnlichen ÄraIch frage mich wirklich, wie ein solches Projekt in einer Organisation von der Größe Microsofts genehmigt wird. Ist das ein Nebenprojekt einiger Entwickler oder Teil einer Produkt-Roadmap?
Wie haben sie die Führung davon überzeugt, Zeit dafür aufzuwenden?
Windows enthält schon seit einiger Zeit einen SSH Server, sodass man es vollständig nur per SSH verwalten kann; dafür brauchte es einen modeless Editor, den auch Windows-Administratoren ohne vi-Erfahrung nutzen können
In Forschungsorganisationen beginnen technische Leute mit etwas Freiraum damit, oder es erhält nach gründlicher Analyse und mehreren Halbjahreszyklen Finanzierung
Wenn man sich die Zahl der Beitragenden hier ansieht, war dieses Projekt vermutlich eher eine strategische Investition. Es ist nicht über Nacht entstanden
Das ursprüngliche edit.com aus DOS 6.22 und später 7.0, also zur Win95-Zeit, war meine erste IDE. Ich hatte mit qbasic angefangen und war an eine ähnliche oder identische Oberfläche gewöhnt; auch als ich mit djgpp C/C++ lernte, nutzte ich weiter edit.com
Meine „Projektdatei“ war
e.batmitedit file1.cpp file2.cpp file3.cpp, und ich nutzte es, weil es eine ziemlich ordentliche Mehrdatei-Unterstützung gab, bei der man mit Alt-1,2,3 einfach wechseln konnte. Auch heute remappe ich Editor-Keybindings noch so, dass Alt/Cmd-1,2,3 zwischen Dateien wechseln, und versuche, mein „aktives Set“ auf ein paar Dateien am Anfang klein zu haltenEs gab kein Syntax-Highlighting und das Einrückungsverhalten war auch nicht besonders gut, also war es kein großartiger Code-Editor. Deshalb nutzte ich früh in meiner Karriere eine Einrückung mit zwei Leerzeichen, die sich leicht von Hand tippen ließ und nicht wie Tabs wirkte. Trotzdem fühlte es sich stark so an, als sei man direkt am Code
Ich wusste, dass viele andere Editoren wie
qeditnutzten, aber aus irgendeinem Grund passten sie nicht zu mir, und Unix-artige Editoren fühlten sich unter DOS unbeholfen anNach kurzem Ausprobieren scheint er zwar mehrere Buffer zu unterstützen, aber der Wechsel zwischen Buffern scheint nicht mit denselben Keybindings zu funktionieren
Und es war nicht nur ähnlich, sondern buchstäblich identisch. EDIT.COM startete lediglich QBASIC mit einem speziellen Flag, und man konnte QBASIC mit diesem Flag auch direkt ausführen. Wie unter https://news.ycombinator.com/item?id=44037509 erwähnt, habe ich das aus Spaß tatsächlich gemacht
Wenn man eine ganze Zeile in Kleinbuchstaben eingab und Enter drückte, wurden reservierte Wörter automatisch in Großbuchstaben umgewandelt. Nicht spektakulär, aber hilfreich
copy conwar edit wirklich ein RetterMir gefällt vieles daran. Allein dass die Abhängigkeitsliste leer ist, hat mich schon überzeugt
Es funktioniert sehr gut. Kaum zu glauben, dass sie für dieses Projekt eine komplette TUI inklusive Dateibrowser und Dialogen gebaut haben. Ich würde sie gern auch in meinen Projekten nutzen und frage mich, wie einfach das wäre. Falls jemand aus dem Projekt hier ist, würde mich auch interessieren, warum sie nicht Ratatui verwendet haben
Auch die Codequalität ist erstklassig, und ich kann nur sagen: Bravo!
Für ein Tool, das als Standardwerkzeug für Administratoren auf einem Betriebssystem wie Windows ausgeliefert wird, ist das eine nachvollziehbare Entscheidung. Mehr Hintergrund zum Thema „selbst bauen“ findet man in den Antworten von lhecker
[1]: https://news.ycombinator.com/threads?id=lhecker
Vor etwa einem Monat habe ich gehört, dass Microsoft eine eigene Linux-Distribution hat, damit sich Windows-Nutzer vertrauter fühlen. Soweit ich mich erinnere, war das eine ziemlich schlichte GNOME-Konfiguration, also nichts Besonderes.
Ich finde es überraschend, dass Microsoft die Gelegenheit nicht genutzt hat, eine eigene Linux-Distribution zu bauen, mit PowerShell statt bash, mit Edit neben Optionen wie vim und nano, und mit .NET sowie Visual Studio Code in der Entwicklerinstallation.
Man hätte das auch zur Standardinstallation für WSL machen können. Im Kampf gegen typische Distributionen wie Ubuntu oder Debian hätte sie wohl nicht gewonnen, aber da es viele Windows-Nutzer gibt, hätte sie einen gewissen Anteil erreichen und zu einer gängigen Option werden können.
Microsoft kann den Linux-Kernel nicht kontrollieren, aber den Userspace schon. Man kann sich vorstellen, was passiert wäre, wenn sich ein Trend etabliert hätte, bei dem die eigenen Anwendungen standardmäßig in beliebten Distributionen installiert sind.
Microsoft Edit lässt sich ebenso wie PowerShell auch unter Linux nutzen. Hätte Microsoft vor etwa zehn Jahren die Karten gut ausgespielt, könnte ihre Distribution heute vielleicht in den Top 5 liegen, weil viele Windows-Nutzer sie über WSL verwenden.
Großkonzerne können ihre Spuren in persönliche Bereiche hineindrücken. Jetzt muss nur noch Co-Pilot in Microsoft Edit standardmäßig aktiviert werden.
Denkbar wäre eine Art „Super“-WINE auf dem Linux-Kernel, mit einem eng integrierten klassischen Windows in einer virtuellen Maschine als Fallback für bestimmte Programme.
Das Problem ist allerdings, dass der NT-Kernel in vielen Aspekten des Designs besser ist als der Linux-Kernel. Zum Beispiel kann sich der NT-Kernel erholen, selbst wenn ein GPU-Treiber komplett abstürzt; Linux dürfte mit so einer Situation ziemlich zu kämpfen haben. Bei anderen Treibern ist es ähnlich.
Aber Windows wird für Microsoft zunehmend eher zur Last als zum Vermögenswert, besonders im Serverbereich. Die wichtigsten Umsatzquellen sind Azure und Office 365, die weiterhin zweistellig wachsen, während das Wachstum bei Windows-Lizenzen stagniert.
Zumindest Versionen wie ein Linux-basiertes Windows Server und eine Linux-basierte Windows Workstation werden meiner Ansicht nach kommen.
IT-Support und technischer Support kennen sich meist nicht gut mit Linux aus und wollen es auch nicht unterstützen. WSL löst dieses Problem.
Die meisten Entwickler wollen gar nicht Linux selbst verwenden. Viele Entwickler wissen nicht einmal richtig, wie man ein Terminal benutzt, und verlassen sich auf GUI-Tools.
Wenn WSL Ubuntu unterstützt, kann es diese Bekanntheit nutzen.
Azure Linux ist ein von Microsoft unterstütztes Betriebssystem für Container, VMs, Server usw.
Das wirkt einfach wie ein Projekt, das jemand „machen wollte, um es auszuprobieren“. Ich verstehe das, weil ich viele solche Dinge gemacht habe, um zu begreifen, was da passiert.
Aber Turbo Vision in FPC neu zu schreiben und für mehrere Targets zu kompilieren, gibt es schon seit 20 Jahren. Turbo Vision ist wahrscheinlich die beste Textmodus-Windowing-Bibliothek, die es gibt.
Interessant wird es, wenn man den gesamten Textbildschirm auf ein solches Array abbilden kann:
varScreen: Array[1..80,1..25] Of Byte Absolute $B800; // or something like that as i recallTurbo Vision brachte verschiebbare modale und nichtmodale Fenster. Im Grunde wurde dieses Array in einer Schleife immer wieder neu geschrieben, und das war ziemlich flott. Mit dieser Bibliothek habe ich eine Menge Geld verdient.
https://github.com/magiblot/tvision
https://news.ycombinator.com/item?id=44034961
array[1..25, 1..80] of Word absolute $B800:0000.Die Arrays von TP waren zeilenweise angeordnet, und jedes Zeichen wurde durch zwei Bytes dargestellt: eines für das Zeichen selbst, das andere für die Attribute (Vorder-/Hintergrundfarbe und Blinken).
Besser wäre also
array[1..25, 1..80] of packed record ch: char; attr: byte end absolute $B800:0000.Bei monochromen Textdisplays wie Hercules (Modus 7) musste man
$B800durch$B000ersetzen.Ich warte jetzt auf EDLIN mit Unicode-Unterstützung.
Ich erinnere mich, dass man in Batch-Dateien Tastendrücke über die Standardeingabe hineinpipe konnte, um bestimmte Bearbeitungsvorgänge zu skripten. Es fühlte sich an, als würde es einen Teil der Funktionen von sed oder awk ersetzen.
Ich habe es nicht ausprobiert, aber mit vi dürfte das wahrscheinlich auch gehen. Ob das nun eine völlig verfluchte Vorgehensweise ist oder nicht, ist eine andere Frage.
-s.Interessant. Ehrlich gesagt weiß ich nicht genau, für wen das gedacht ist, aber es sieht spannend aus.
edit-Befehl wird unter Windows seit 2006 nicht mehr unterstützt, daher gab es seitdem keinen von Microsoft bereitgestellten Editor für die Kommandozeile.Beeindruckend, wie schnell dieser Editor ist. https://github.com/microsoft/edit/pull/408
Im Moment nutze ich Helix, aber eine gute TUI gefällt mir.
1993 habe ich gern mit edit Binärdateien geöffnet und mich daran erfreut, Herzsymbole zu sehen.