2 Punkte von GN⁺ 2025-02-28 | 1 Kommentare | Auf WhatsApp teilen
  • Fish ist eine benutzerfreundliche Kommandozeilen-Shell für macOS, Linux und andere Unix-artige Betriebssysteme
  • Ab 4.0.0 wurde der Kerncode von Fish von C++ nach Rust portiert
    • Das bringt große Änderungen bei Abhängigkeiten und Build-Verfahren mit sich, hat aber keine direkten Auswirkungen auf Nutzer
  • Inkompatible Änderungen:
    • Einführung einer neuen Tastennotation für den bind-Befehl
    • ctrl-c ruft jetzt clear-commandline auf; das frühere Verhalten ist weiter über cancel-commandline verfügbar
    • Die Ergebnisse der random-Funktion können sich bei gleichem Seed-Wert von früheren Versionen unterscheiden
    • Variablen an der Befehlsposition können jetzt nicht mehr zu Subcommand-Schlüsselwörtern erweitert werden
    • functions --handlers listet Handler jetzt in der Reihenfolge ihrer Definition auf
    • Die Funktion qmark-noglob ist jetzt standardmäßig aktiviert

Verbesserungen und Fehlerbehebungen

  • Tastaturprotokolle: Unterstützung für XTerms modifyOtherKeys und das Tastaturprotokoll von kitty
  • Selbst installierbare Binärdateien: fish kann als selbst installierbare Binärdatei gebaut werden
  • Befehlsverlauf: Mit der Funktion fish_should_add_to_history lässt sich festlegen, welche Befehle zum Verlauf hinzugefügt werden
  • Undo-Funktion: Der Verlauf bleibt jetzt auch nach dem Ausführen eines Befehls erhalten
  • Abkürzungsbeschränkung: Abkürzungen können auf bestimmte Befehle begrenzt werden

Veraltete und entfernte Funktionen

  • commandline --tokenize wurde durch commandline --tokens-expanded ersetzt
  • Die Angabe von Tastennamen über die Syntax bind -k ist veraltet
  • Der Einfügemodus wurde entfernt

Verbesserungen beim Scripting

  • Neuer Verlaufsbefehl: Mit history append können Befehle ohne Ausführung zum Verlauf hinzugefügt werden
  • Neue Umleitung:

1 Kommentare

 
GN⁺ 2025-02-28
Hacker-News-Kommentare
  • Das Interessanteste an Fish 4.0 ist, dass es jetzt in Rust geschrieben ist
    • Ich würde gern durch Tests prüfen, ob es einen spürbaren Unterschied gibt
  • Es heißt, dass es für Nutzer keine direkten Auswirkungen geben wird
    • Der Kern von Fish wurde neu geschrieben, aber fast alles funktioniert genauso wie zuvor
  • Ich frage mich, was für Leute, die zu Fish gewechselt sind, der größte Nachteil ist
    • Wenn man sich auf dem eigenen System daran gewöhnt hat, auf Firmenservern aber Bash oder Zsh verwenden muss
    • Wenn man von Bash auf Fish umsteigen will, könnte man auch in Erwägung ziehen, zu Nushell zu wechseln
  • Als Zsh-Nutzer würde ich Fish gern ausprobieren
    • Ich füge Zsh Plugins hinzu, damit es sich wie Fish verhält
  • Wenn man Homebrew verwendet, ist Fish dort noch nicht verfügbar
    • Es soll noch hinzugefügt werden
  • Ich nutze Fish seit vielen Jahren, vor allem wegen der hervorragenden Autovervollständigung
    • Das vereinfachte Theme-/Prompt-System und die Plugin-Verwaltung mit oh-my-fish sind ebenfalls gut, aber eher zweitrangig
  • Die übrigen Funktionen von Fish, die nicht mit Bash kompatibel sind, sind lästig
    • Besonders die Verwaltung von Umgebungsvariablen ist problematisch
    • Prinzipiell ist das Design besser als bei Bash, aber der Unterschied ist nicht so groß, und weil man es selten benutzt, muss man es jedes Mal neu lernen
    • Es ist unpraktisch, wenn man Konfigurationsanleitungen aus der Dokumentation kopieren und einfügen will
  • Ich frage mich, wie die Entwicklungskoordination für die Migration zu Rust ablief
    • Es ist nur ein einzelner PR (#9512) zu sehen
  • Ich frage mich, wie viel größer die Binärdatei nach der Neuschreibung in Rust geworden ist
  • clear-commandline ist eine interessante Funktion
    • Es ist schwierig, Konsistenz zwischen Windows und macOS zu wahren
    • Ich bekomme Karabiner nicht richtig zum Laufen
    • Ich werde mir die Standardbelegung von cancel-commandline ansehen