Rust: Kommandozeilen-Shell fish 4.0 unterstützt erweiterte Tastaturprotokolle

fish 4.0 führt wichtige Neuerungen ein, darunter erweiterte Tastaturprotokolle. Das Update bringt neue Anpassungsmöglichkeiten für Developer.

vorlesen Druckansicht 14 Kommentare lesen
Hände an Laptop-Tastatur mit unscharfem Code im Hintergrund

(Bild: Tero Vesalainen/Shutterstock.com)

Lesezeit: 3 Min.
Inhaltsverzeichnis
close notice

This article is also available in English. It was translated with technical assistance and editorially reviewed before publication.

fish 4.0 ist erschienen und bringt eine lange Liste an Änderungen sowie Überarbeitungen mit sich. Die neue Version der "freundlichen und interaktiven Shell" (kurz: fish) umfasst sowohl technische Anpassungen, die die Leistung und Stabilität beeinflussen, als auch neue Funktionen, die die Anpassungsfähigkeit und Benutzerfreundlichkeit erweitern sollen. Neben Syntax-Highlighting bietet die Shell automatische Vorschläge während der Eingabe sowie erweitere Tab-Vervollständigung, die ohne zusätzliche Konfiguration funktionieren.

In fish 4.0 wurde der Kerncode der Shell von C++ auf die Programmiersprache Rust portiert. Diese Änderung betrifft die Abhängigkeiten und die Art und Weise, wie die Shell gebaut wird, hat jedoch laut GitHub keine direkten Auswirkungen auf die Endnutzer.

In fish 4.0 gibt es mehrere Änderungen, die mit der Abwärtskompatibilität brechen. Eine der wesentlichen Neuerungen betrifft die bind-Funktion, die eine neue Tastenbezeichnung erhalten hat. Laut Release Notes sollte die alte Notation in den meisten Fällen weiterhin funktionieren, jedoch kann es in seltenen Fällen erforderlich sein, eine bind-Anweisung anzupassen.

Die Tastenkombination ctrl-c ruft ab sofort die neue Bind-Funktion clear-commandline auf, während die alte Funktionsweise als cancel-commandline verfügbar bleibt.

In der Version 4.0 von fish wurde das Verhalten der random-Funktion angepasst. Im Unterschied zu früheren Versionen von fish erzeugt sie nun unterschiedliche Werte, selbst wenn derselbe Seed (Startwert) zugrunde liegt. Zudem hat das Entwicklerteam die Funktion so angepasst, dass sie auch mit kleineren Seeds zuverlässig arbeitet. Diese Änderungen verbessern die Konsistenz und Zufälligkeit der erzeugten Zahlen.

Mit der neuesten Version von fish hat die Shell ihre Unterstützung für erweiterte Tastaturprotokolle (Keyboard Protocol) überarbeitet, indem sie das modifyOtherKeys-Encoding des Terminal-Emulators XTerm und die fortschreitenden Verbesserungen des kitty-Keyboard-Protokolls integriert hat. Diese Erweiterungen ermöglichen es, eine größere Bandbreite an Tastenkombinationen zu erkennen und zu nutzen, was laut Release Notes vor allem Anwenderinnen und Anwendern zugutekommt, die komplexe Eingaben mit Modifikatortasten wie ctrl, alt und shift verwenden. Es ist so etwa möglich, zwischen ctrl-i und der Tab-Taste zu unterscheiden, obwohl diese in vielen Umgebungen gleich behandelt werden.

Darüber hinaus erhält die bind-Funktion von fish eine menschenlesbare Syntax, die die Konfiguration von Tastenkombinationen erleichtern soll, indem sie die Verwendung von Tasten- und Modifikatornamen unterstützt. Bei Problemen mit Terminals, die unerwartete Zeichen in der Kommandozeile anzeigen, lässt sich die Unterstützung für diese neuen Protokolle vorübergehend deaktivieren.

Videos by heise

Eine weitere wichtige Neuerung ist, dass sich fish jetzt als selbst installierende Binärdatei bauen lässt. Das ermöglicht es, fish auf einem System zu bauen und es auf ein anderes zu kopieren, auf dem es die benötigten Dateien extrahiert. Wer dies möchte, sollte den folgenden Code aus den Release Notes ausführen:

cargo install --path . # in a clone of the fish repository
# or `cargo build --release` and copy 
target/release/fish{,_indent,_key_reader} wherever you want

Die neue Funktion fish_should_add_to_history lässt sich in fish 4.0 überschreiben, um zu entscheiden, ob ein Befehl der Historie hinzugefügt werden soll. Auch können Bindings nun spezielle Eingabefunktionen und Shell-Befehle mischen.

Nähere Informationen zu fish 4.0 bieten die Release Notes auf GitHub.

(mdo)