Fish Shell 4.0 Beta führt eine umfassende Neufassung in Rust ein
Die beliebte Fish Shell hat gerade eine neue Beta-Version veröffentlicht - 4.0! Dies ist eine große Veränderung, da es die erste Version nach einer umfangreichen Neuschreibung ist. Die Fish Shell wurde ursprünglich in C++ geschrieben, aber jetzt ist sie in Rust geschrieben. Das bedeutet, dass der Kerncode der Shell vollständig geändert wurde.
Diese erste Beta-Version der Fish-Shell 4.0 kommt mit vielen Veränderungen, sowohl großen als auch kleinen. Hier sind einige Highlights:
- Verbesserte Tastenkombinationen: Fish unterstützt jetzt mehr Tastenkombinationen, was die Nutzung erleichtert.
- Bessere automatische Vorschläge: Fish kann jetzt bessere Vorschläge für Befehle machen, wodurch das Arbeiten schneller wird.
- Erweitertes Scripting: Es gibt eine Reihe von Verbesserungen, die das Schreiben von Skripten in Fish erleichtern werden.
- Bessere Terminalunterstützung: Fish funktioniert jetzt besser mit einer größeren Auswahl an Terminals, was ihn flexibler macht.
Warum hat Fish Shell Rust gewählt?
Die Entwickler der Fish-Shell wählten Rust als Zielsprache für ihre Neuimplementierung aus mehreren wichtigen Gründen.
Rust ist eine Systems-Programmiersprache mit breiter Plattformunterstützung, einer und einer guten Chance, auch in Zukunft relevant zu bleiben. Dies war eine wichtige Überlegung, da die Entwickler die langfristige Nachhaltigkeit des Projekts sicherstellen wollten.
Die Entwickler waren auch der Meinung, dass Rusts Sicherheits- und Zuverlässigkeits-Funktionen dabei helfen würden, Fehler zu vermeiden und die Shell stabiler zu machen. Dies war besonders wichtig, weil eine Shell zur Steuerung eines Computers verwendet wird und Fehler schwerwiegende Folgen haben können.
Wichtiger ist, dass Rusts einzigartige Stärke in Thread-Sicherheit-Funktionen eine Lösung für die Herausforderung bietet, den gleichzeitigen Modus in der Fish-Shell zu ermöglichen. Dies war ein langjähriges Ziel der Entwickler, ließ sich jedoch in C++ nur schwer sicher erreichen.
Schließlich erwogen die Entwickler andere Sprachen, entschieden sich aber letztendlich, dass Rust am besten geeignet war.
Sie schlossen Sprachen wie Java, Python und andere Skriptsprachen aufgrund von Bedenken hinsichtlich der Startverzögerung und des Speicherverbrauchs aus.
Die Programmiersprache Go wurde aufgrund ihrer Handhabung des fork-Systemaufrufs als unpassend betrachtet.
Andere Systemprogrammiersprachen wie D, Nim und Zig galten als zu spezialisiert, was bedeutete, dass sie weniger Mitwirkende hatten und ein höheres Risiko bestand, in Zukunft irrelevant zu werden.
Wesentliche Verbesserungen in Fish Shell 4.0 Beta
Diese Beta-Version (4.0b1) der Fish-Shell enthält eine bedeutende Neuschreibung des Kerncodes von C++ zu Rust. Sie bietet eine Reihe bemerkenswerter Verbesserungen und Korrekturen:
Zuerst verlangt Fish nun den modifyOtherKeys-Tastaturcode von XTerm und die progressiven Verbesserungen des Kitty-Tastaturprotokolls, die je nach Terminalunterstützung möglicherweise die Bindung weiterer Tastenkombinationen erlauben.
Außerdem unterstützt bind jetzt eine menschenlesbare Syntax. Fish kann jetzt auch als selbstinstallierbares Binärprogramm erstellt werden.
Zweitens gibt es viele Verbesserungen beim Skripten und interaktiven Gebrauch. Zum Beispiel löscht ctrl-c während der Befehlseingabe einfach die Befehlszeile, anstatt ^C und eine neue Eingabeaufforderung auszugeben.
Bindings können jetzt auch spezielle Eingabefunktionen und Shell-Befehle mischen. Die ctrl-r Verlaufssuche verwendet jetzt Glob-Syntax und arbeitet nur auf der Zeile oder der Befehlsersetzung am Cursor, was es einfacher macht, Befehle aus dem Verlauf zu kombinieren. Abkürzungen können jetzt auf bestimmte Befehle beschränkt werden.
Drittens gibt es eine Reihe von interaktiven Verbesserungen, einschließlich der Tatsache, dass die Rückgängig-Historie nach jedem Befehl nicht mehr gekürzt wird und ctrl-v jetzt ASCII-Steuerzeichen aus eingefügtem Text entfernt.
Es gibt auch einige neue oder verbesserte Tastenkombinationen, einschließlich alt-o, um den aktuellen Befehl in einem Editor zu öffnen, und shift-delete, um das aktuelle Suchelement zu löschen und beim Durchsuchen der Historie mit der Aufwärtspfeiltaste zum nächsten älteren Element zu wechseln.
Es gibt auch eine Reihe von Verbesserungen bei der Vervollständigung, wie zum Beispiel, dass tab-spezifische Vervollständigungen für Befehle jetzt Ergebnisse anbieten können, deren erstes Zeichen ein Punkt ist, und dass die Optionen-Vervollständigung jetzt eine fuzzy Subsequenz-Filterung verwendet.
Schließlich beinhaltet diese Version eine verbesserte Terminalunterstützung, einschließlich der Tatsache, dass Fish nun die Eingabeaufforderungs- und Befehlsausgabebereiche (über OSC 133) markiert, um die Integration der Terminal-Shell zu ermöglichen, und das Arbeitsverzeichnis (über OSC 7) bedingungslos meldet.
Dies ist nur eine kurze Übersicht über die vielen Änderungen in dieser Version. Detailliertere Informationen finden Sie in den Releasenotizen auf GitHub.
Lade Fish 4.0b1 Beta herunter
Diese Beta-Version ist ein großer Fortschritt für Fish. Es ist spannend zu sehen, was die Zukunft für diese beliebte Shell bereithält! Wenn Sie sie ausprobieren möchten, können Sie sie von der Fish-Release-Seite auf GitHub herunterladen.
Bitte beachten Sie, dass dies eine Beta-Version ist, daher können einige Fehler auftreten. Es ist eine gute Idee, auf die endgültige Version zu warten, wenn Sie Fish für wichtige Arbeiten verwenden.
Aber wenn Sie gerne neue Dinge ausprobieren und beim Testen helfen, legen Sie los und probieren Sie es aus! Sie können alle Probleme, die Sie finden, auf der Fish-GitHub-Seite melden.