Software-update - fish 4.9.0
Versie 4.9.0 van fish is uitgekomen met kort erachteraan een opvolger die enkele kleine problemen moet verhelpen. Fish, wat staat voor 'friendly interactive shell', is een Unix-shell met een focus op interactiviteit en gebruikersvriendelijkheid. Het kan bijvoorbeeld worden gebruikt als vervanger van Bash. Downloads zijn beschikbaar voor macOS, Linux, BSD en onder Windows is het ook in Windows Subsystem for Linux te gebruiken. De changelog voor deze uitgave kan hieronder worden gevonden.
fish 4.9.1
This release fixes the following problems identified in fish 4.9.0:
- On non-default keyboard layouts, fish executed bindings for physical keys instead of only bindings for the layout's key. For example, on the Dvorak layout, typing
swould insert;because there is a default binding for;(#12968).- When typing
spaceto accept a character entered via certain IMEs, fish would insert a space instead of the desired character, which has been fixed (#12974).- On macOS terminals, keys like
option-lwould execute bindings foralt-linstead of the historical behavior of inserting a character (like@on a German layout) (#12973).fish 4.9.0
This release exists mainly to work around an issue with the Konsole terminal which would cause
Interactive improvementsshift-pageupto stop working. This release brings 151 new commits since 4.8.1, contributed by 26 authors, 18 of which are new faces.Scripting improvements
- To mitigate issues in Konsole version v26.07.80’s implementation of the kitty keyboard protocol, fish no longer requests that protocol on Konsole. The
omit-term-workaroundsfeature flag can be turned on to enable the kitty keyboard protocol on Konsole again (#12948).- On some terminals like kitty, keys like
shift-spaceandspacecan now be mapped independently (#12898).- Fixed slow tab completion in directories that contain slow-to-resolve symlinks (e.g. links to network-mounted files) (#12905).
- Abbreviations can now be given a description, which will be displayed in the completion pager (#11291).
- Vi mode commands like
cFandcTnow work correctly (#12947).Regression fixes:
- List indexing can now be nested in more cases; for example
$foo[$bar[1] 2]is now allowed (#12903).- Escaped square brackets (e.g.
\133for[) are no longer considered a slicing operator (#7969).- Variables containing a closing square brackets and used to index into another variable will no longer close the slice early (#12819).
- Builtin help pages now respect an override of the
manfunction (#12886).- Commands like
status=123 echo $statusnow throw an error instead of silently ignore the variable override (#7790).
| Versienummer | 4.9.1 |
| Releasestatus | Final |
| Besturingssystemen | Linux, BSD, macOS, Windows 10, Windows 11 |
| Website | Fish |
| Download | https://fishshell.com |
| Licentietype | GPL |
Update-historie
| 07:30 | fish 4.9.1 | 8 |
| 14-07 | fish 4.8.1 | 4 |
| 24-06 | fish 4.8.0 | 3 |
| 06-05 | fish 4.7.0 | 9 |
| 28-03 | fish 4.6.0 | 11 |
| 17-02 | fish 4.5.0 | 0 |
| 03-02 | fish 4.4.0 | 4 |
| 07-01 | fish 4.3.3 | 21 |
| 31-12 | fish 4.3.2 | 0 |
| 28-12 | fish 4.3.1 | 16 |
Reacties (8)
Ik wil niet moeten denken elke keer of een issue aan fish ligt of aan het script wat ik draai.
Ik ben overgestapt naar zsh icm ohmyzsh met auto complete plugin en dat werkt nagenoeg hetzelfde en is wel posix compliant.
Voor de liefhebber; ik heb een justfile met mijn config hier staan: https://github.com/L0g0ff/KompassOS/blob/main/files%2Fjustfiles%2Fsetup_zsh.just
Als je script de juiste shebang heeft aan het begin (#!/usr/bin/env bash) en je het direct aanroept vanuit wat voor omgeving dan ook, dan draait het script gewoon onder bash en heb je geen compatibiliteitsproblemen.Ik wil niet moeten denken elke keer of een issue aan fish ligt of aan het script wat ik draai.
[Reactie gewijzigd door The Zep Man op 4 september 2026 09:19]
Als je "#!/usr/bin/env bash" gebruikt, ga je alsnog door je environment heen op zoek naar de bash die daar in geconfigureerd is. En als dat dan een alias/functie is om fish (of welke andere shell) te starten, ga je alsnog nat.
Als je #!/usr/bin/env wilt gebruiken, doe daar dan wat mee. En geef dan ook het path naar de shell op zodat je die ook forceert. Bijvoorbeeld "#!/usr/bin/env -i /usr/bin/sh".
Je kan maar één pad opgeven. Dus niet en /bin/bash en /usr/bin/bash. Dit is dus geen oplossing. Je weet niets zeker.De echte #! is #!/bin/bash of #!/usr/bin/bash. Dan weet je zeker dat je script met bash wordt gedraait.
Het is niet de taak van een script om fouten of afwijkingen van standaarden door de gebruiker of het systeem te compenseren (tenzij je het er expliciet voor schrijft). Zo kan een Bashb script bijvoorbeeld niets doen als Bash helemaal niet beschikbaar is.Als je "#!/usr/bin/env bash" gebruikt, ga je alsnog door je environment heen op zoek naar de bash die daar in geconfigureerd is. En als dat dan een alias/functie is om fish (of welke andere shell) te starten, ga je alsnog nat.
De man page van env gebruikt geen absolute paden om naar de interpreter te refereren. Keep calm and follow the standards.
[Reactie gewijzigd door The Zep Man op 4 september 2026 18:53]
Dit is naar mijn mening het enige juiste antwoord. Als je scripts hebt/maakt zonder de interpreter te definieren is dat een MEGA-security risico en zou je er eigenlijk niet aan moeten beginnnen, vind ik.[...]
Als je script de juiste shebang heeft aan het begin (#!/usr/bin/env bash) en je het direct aanroept vanuit wat voor omgeving dan ook, dan draait het script gewoon onder bash en heb je geen compatibiliteitsproblemen.
Sinds januari 1992 heb ik bash gebruikt en half Nederland ermee gebouwd
Die ~/bin folder reist al 34 jaar met me mee en heb er 95% van mijn opdrachten mee kunnen doen. (nog geen 1 MB)...
Hoe vaak mijn collega's wel niet per ongeluk de verkeerde commando uitvoerden door de "slimme" autocompletion van fish/zsh/etc.
En wie mag het weer fixen? Moi.
Vooral "leuk" bij mensen die onbekend zijn met de *nix shell, en dus eigenlijk maar half weten wat er gebeurd en dus wat ze doen.
Om te kunnen reageren moet je ingelogd zijn
/i/2007293288.png?f=imagenormal)
:strip_exif()/u/9179/crop586dff9d475a6_cropped.gif?f=community)
:strip_exif()/u/25859/test2.gif?f=community)
/u/94596/crop643fb12fd4e6d.png?f=community)
/u/466919/Tweakers_p9_v2.png?f=community)