Mastodon
Zuletzt aktualisiert am
Linux News
Bobby 🇬🇧 Borisov

Fish Shell 4 ist hier komplett in Rust umgeschrieben

Fish Shell 4 ist da, komplett neu geschrieben in Rust mit verbesserten Tastenbindungen, selbstinstallierbaren Builds, besserer Verlaufskontrolle und mehr.
Eine Übersetzung von 🇬🇧 Linuxiac.com

Das beliebte Fish-Shell-Projekt hat soeben Fish 4 vorgestellt, ein bedeutendes Update, das wichtige Verbesserungen hinter den Kulissen und neue Funktionen für die Benutzer bietet.

Und hier ist der Star der Show - Rust! Ja, das ist richtig: Fish 4 wurde komplett in Rust umgeschrieben. Aus der Perspektive eines alltäglichen Benutzers sollte der Übergang jedoch praktisch unsichtbar bleiben: Die Befehle, Einstellungen und typischen Interaktionen sollen unverändert bleiben.

Was Sie bemerken werden: Fish hat ein aktualisiertes Bind-Notationssystem und eine tiefere Terminal-Kompatibilität eingeführt. Sie können nun undurchsichtige Sequenzen durch freundlichere, intuitive Befehle wie bind ctrl-right ersetzen. Dank modifyOtherKey und dem Tastaturprotokoll Kitty kann Fish Steuersequenzen unterscheiden, die zuvor identisch erschienen.

Ein weiteres Highlight in Fish 4 ist die engere Integration mit Terminalfunktionen. Zum Beispiel verwendet Fish jetzt automatisch OSC 133-Sequenzen für Prompts und Befehlsausgaben, was eine reibungslosere Synchronisation mit verschiedenen Terminals ermöglicht, die früher auf zusätzliche "Shell-Integrationsskripte" angewiesen waren.

Außerdem standardisiert Fish 4 Cursorwechsel im vi-Modus für die meisten Terminals und verlässt sich nicht mehr auf die umgebungsspezifische Erkennung, die oft unzureichend ist.

Insbesondere geht die Shell jetzt mit langen Befehlszeilen besser um, indem sie scrollt, anstatt sie falsch darzustellen. Außerdem sind alle Änderungen, die durch Befehlszeilenbindungen ausgelöst werden, sofort sichtbar, was eine intuitivere Skripterstellung und interaktive Erfahrung ermöglicht.

Apropos Verbesserungen für die interaktive Nutzung: Der erstmals in Fish 3.6 eingeführte ctrl + r History Pager wurde verfeinert. Sie können sich jetzt auf die glob-Syntax verlassen, um die Einträge in der Historie genauer zu filtern. Noch besser ist, dass sich diese Suche ausschließlich auf den aktuellen Befehl bezieht, so dass Sie komplexere, mehrzeilige Verlaufsrekonstruktionen erstellen können, ohne sich durch ganze Skripte wühlen zu müssen.

Das Standardthema hat auch eine kleine, aber bedeutsame Änderung erfahren: Befehle erscheinen jetzt in der "normalen" Farbe des Terminals anstatt in dem etwas schwer lesbaren "Blau". Bestehende Benutzer behalten ihre aktuellen Einstellungen bei, es sei denn, sie laden das Theme manuell über fish_config neu.

Die neue selbstinstallierbare Build-Funktion könnte für Benutzer, die sich häufig per SSH in Server einwählen, ohne über administrative Rechte zu verfügen, eine entscheidende Neuerung darstellen. Nach der Kompilierung von Fish können Sie eine einzige, in sich geschlossene Binärdatei ausführen, die alles Notwendige - Funktionen, Manpages und sogar das Webkonfigurationsprogramm - direkt in Ihr Heimatverzeichnis extrahiert.

Mit anderen Worten, dies macht es einfacher als je zuvor, Fish in Umgebungen auszuführen, in denen ein Paketmanager nicht verfügbar ist (oder Sie nicht die Erlaubnis haben, ihn zu verwenden). Vorgefertigte Versionen sind für die wichtigsten Plattformen wie x86_64 und aarch64 Linux auf der GitHub Releases Seite des Projekts verfügbar. Andere Plattformen werden ebenfalls unterstützt, auch wenn Sie möglicherweise Ihre eigenen Builds kompilieren müssen.

Ein weiteres lang ersehntes Feature, die Möglichkeit, bestimmte Befehle aus der Historie auszuschließen, ist endlich da. Durch die Definition einer benutzerdefinierten Funktion namens fish_should_add_to_history können Sie genau entscheiden, welche Befehle beibehalten werden sollen. Jeder Befehl, der zum Ausschluss markiert ist, bleibt an einem temporären Ort, so dass Sie immer noch den Pfeil nach oben drücken können, um ihn sofort zu wiederholen, aber sobald Sie etwas anderes ausführen, wird er gelöscht. Für Skripting-Enthusiastenbietet Fish 4 eine Menge Verbesserungen, die wichtigsten davon sind:

  • string match unterstützt nun die Option --max-matches, mit der die Anzahl der verarbeiteten Übereinstimmungen begrenzt werden kann.
  • for Schleifen erinnern sich nicht mehr an lokale Variablen aus der vorherigen Iteration.
  • set erhält die Option --no-event, um Variablenänderungsereignisse zu unterdrücken (besonders nützlich in Event-Handlern).
  • time beginnt früher mit der Messung und erfasst die Dauer aller Befehlsersetzungen, die vor der Ausführung eines Befehls auftreten.
  • complete --erase deaktiviert die automatische Vervollständigung für bestimmte Befehle vollständig und gleicht sich damit an functions --erase an.

Weitere Informationen zu allen Neuerungen in Fish Shell 4 finden Sie in der Release-Ankündigung.

Spendieren Sie Bobby einen ☕ Ko-fi

Ein Service von s3n🧩net

Comments