Website-Suche

Dieses altmodische Windows-Terminal macht immer noch ein paar Dinge besser als Microsoft


Windows Terminal ist still und leise zu einem der besseren Dinge geworden, die Microsoft liefert. Tabs, geteilte Fenster, ein richtiger Quake-Modus, GPU-Rendering, sehr brauchbare Unicode-Unterstützung und eine Einstellungsoberfläche, die mich nicht JSON bearbeiten lässt, es sei denn, ich möchte es. Es ist das Terminal, zu dem ich standardmäßig greife, und ich hatte lange keinen Grund, mich anderswo umzusehen.

Bevor Windows Terminal so gut war, habe ich jedoch Cmder benutzt. Es war das Paket, das das Arbeiten in einer Windows-Shell erträglich machte. Es war portabel, mit Git für Windows gebündelt und bot von Anfang an viel vernünftigere Standardeinstellungen. Ich nahm an, dass ich es fallen lassen würde, sobald Microsofts eigenes Terminal mit ordentlichen Profilen und Shell-Integration nachgezogen hätte, und größtenteils habe ich das auch getan. Aber Cmder hat meine Einrichtung nie vollständig verlassen, weil es immer noch ein paar Dinge gibt, die das altmodische Paket besser kann als alles, was Microsoft selbst liefert.

Cmder gibt dem Windows-Terminal die Unix-Tools, die ihm fehlen

Git, ls, grep und ssh sind auf jedem Windows-Rechner einsatzbereit






Windows Terminal ist nur ein Terminal-Host. Es rendert jede Shell, auf die Sie es zeigen, bringt aber keine Werkzeuge mit. Auf einer sauberen Windows-Installation liefern cmd und PowerShell immer noch nicht die Unix-Befehle, die ich jeden Tag benutze. Es gibt kein ls, grep, cat oder ssh. Wenn ich eines davon haben möchte, muss ich Git für Windows separat installieren, mich um den PATH kümmern und den Vorgang auf jedem neuen Rechner wiederholen.

Cmder hat dieses Problem nicht. Die Vollversion ist etwa 100MB groß und wird mit einer mitgelieferten Git for Windows-Installation geliefert, was bedeutet, dass ich git, ls, grep, cat, ssh und eine funktionierende Bash-Shell erhalte, ohne etwas zusätzlich installieren zu müssen. Alle Befehle, die ich auf einem Linux-Rechner verwenden würde, funktionieren direkt aus dem Zip-Archiv.

Es bindet Clink auch an cmd an, was eine bash-ähnliche Befehlszeilenbearbeitung ermöglicht. Das bedeutet Rückwärtshistorie-Suche mit Strg+R, bessere Tab-Vervollständigung und die Art von Abkürzungen, die sich natürlich anfühlen, wenn man Zeit in einer Linux-Shell verbracht hat. Normales cmd innerhalb des Windows Terminals macht all dies nicht, ohne dass man Clink selbst hinzufügt.

Die praktische Folge ist, dass das Ausrichten eines Windows Terminal-Profils auf Cmders init.bat mir das Beste aus beiden Welten gibt. Ich erhalte das GPU-Rendering und die Registerkartenverwaltung von Windows Terminal und Cmder's Shell füllt stillschweigend die Umgebung mit jedem Unix-Werkzeug, das ich benötige.

Cmder ist tragbar

Die gesamte Umgebung lebt in einem Ordner, Sie können sie überallhin kopieren

Die Portabilität ist ein weiterer Grund, warum Cmder immer noch einen Vorteil gegenüber allem hat, was Windows zu bieten hat. Zum Beispiel ist das Windows Terminal eine Store-App, die an ein Microsoft-Konto und das Betriebssystem selbst gebunden ist; man kann es nicht einfach auf einen anderen Computer kopieren. Cmder befindet sich am anderen Ende dieses Spektrums.

Es ist ein einzelner Ordner. Sobald Sie ihn nach C:\tools\Cmder entpacken, setzen Sie die Umgebungsvariable %CMDER_ROOT%, und das ist die gesamte Einrichtung. Wenn ich ihn auf ein anderes Laufwerk oder einen anderen Rechner verschieben möchte, kann ich einfach den Ordner kopieren, und alles wird mitgenommen, einschließlich meiner Aliase, meines Farbdesigns, meiner Tastenkombinationen, meines mitgelieferten Git und aller Binärdateien, die ich im bin-Ordner auf den PATH gelegt habe.

Windows Terminal erlaubt es Ihnen, Einstellungen zu exportieren, aber das betrifft nur Windows Terminal selbst. Es bringt nicht Ihre Git-Binärdatei, Ihre Unix-Tools oder Ihre Aliase mit. Cmder behandelt die gesamte Shell-Umgebung als eine tragbare Einheit, und nichts, was Microsoft liefert, entspricht dem wirklich.

Die Alias-Datei von Cmder ist besser als das Einrichten eines PowerShell-Profils

Eine einfache Textdatei für Verknüpfungen, kein Scripting erforderlich

Die Portabilität wäre nur halb so attraktiv, wenn ich meine Shortcuts auf jedem Computer neu erstellen müsste. Genau hier zahlt sich die Alias-Datei von Cmder aus, und sie ist das Element, für das ich in reinem PowerShell nie einen sauberen Ersatz gefunden habe.

Cmder speichert Aliase in einer Klartextdatei in seinem Konfigurationsordner, und die Syntax ist so einfach wie möglich. Eine Zeile pro Alias, alias gs=git status $* oder alias ..=cd .., und die Verknüpfung ist beim nächsten Öffnen einer Shell sofort aktiv. Sie müssen sich keine Sorgen um das Scripting, das Konfigurieren der Ausführungsrichtlinie oder das Suchen nach dem richtigen Profilpfad machen. Wenn Sie jemals ein PowerShell-Profil mit nützlichen Befehlen eingerichtet haben, die Sie tatsächlich wiederverwenden, kennen Sie den Unterschied.

Ein PowerShell-Profil ist eine Skriptdatei, die beim Start ausgeführt wird, und sie befindet sich an einem von mehreren Pfaden in Ihrem Dokumente-Ordner, abhängig davon, welchen Host und welche Version von PowerShell Sie verwenden. Set-Alias behandelt nur einfache Befehl-zu-Befehl-Zuordnungen, sodass alles, was Argumente benötigt, wie etwa gs, das sich zu git status mit Flags erweitert, als vollständige Funktion geschrieben werden muss. Das ist in Ordnung, wenn Sie gerne PowerShell schreiben. Es ist jedoch viel Aufwand, wenn Sie nur eine zweibuchstabige Abkürzung für git status wollen.

Der Portabilitätspunkt verstärkt sich hier ebenfalls. Meine Alias-Datei befindet sich im Cmder-Ordner, was bedeutet, dass beim Kopieren von Cmder auf einen neuen Rechner jede von mir je definierte Verknüpfung mitkommt. Ein PowerShell-Profil reist nicht mit, es sei denn, ich synchronisiere explizit den Dokumente-Pfad, und selbst dann ist es nur die halbe Einrichtung.

Warum dieses alte Bündel immer noch seinen Platz verdient

Ich werde als Erster zugeben, dass Cmders Fenster sein Alter zeigt. Das Rendering ist im Vergleich zum GPU-beschleunigten Output des Windows-Terminals träge, die Registerkartenverwaltung ist einfach, und die ConEmu-Benutzeroberfläche darunter sieht aus, als wäre sie vor einem Jahrzehnt entworfen worden. Wenn Sie Cmder immer noch direkt starten, verstehe ich, warum Sie weiterziehen möchten.

Der Trick besteht darin, Cmder nicht mehr als Terminal zu behandeln, sondern als ein Shell-Bündel innerhalb des Windows-Terminals. Richten Sie ein WT-Profil auf das Init-Skript von Cmder aus, und die alte Oberfläche wird nie geladen. Was Sie behalten, sind die Unix-Werkzeuge, der portable Ordner und die Alias-Datei, eingebettet in Microsofts modernen Renderer. Cmder entstand aus Frustration über Windows-Konsolenemulatoren, und Microsoft hat die meiste dieser Frustration auf der Render-Seite endlich behoben. Die Teile, die nicht behoben wurden, sind genau der Grund, warum das alte Bündel immer noch seinen Platz verdient.

Verwandte Artikel