Suite à l’annonce du portage de fish en rust, je me suis laissé tenter. C’est désormais tranché, je reste sur fish !
Première chose j’ai suivi le tutoriel et j’ai notamment lancé fish_config browse
pour choisir mes couleurs et mon prompt.
Mon config.fish
est très simple, je m’étais amusé à remplacer le « greeting » par des fortunes et notamment de les ré-afficher lors d’un clear screen :
❯ cat ~/.config/fish/config.fish
if status is-interactive
# Commands to run in interactive sessions can go here
bind \cl 'clear;fish_greeting;echo;commandline -f repaint'
end
À noter que la configuration est stockée sous ~/.config/fish/
contrairement aux ~/.*shrc
.
On peut y placer des fonctions fish ou des snippets de configurations additionnels. Dont mon fish_greeting :
❯ cat functions/fish_greeting.fish
function fish_greeting
fortune -asc /home/m8t/var/fortune/ /usr/share/fortune/ | sed '/^%$/d';
end
Il n’y a pas de commande built-in alias
contrairement aux autres shell populaires, il y a cependant une fonction fish pour imiter les alias. On peut définir un alias tel quel : alias cal='cal -m3'
. On peut aussi sauvegarder l’alias directement avec l’option --save
: alias --save cal='cal -m3'
. Et voilà, l’alias est disponible dans les nouvelles sessions.
Mais j’ai aussi eu l’occasion de découvrir abbr
qui est une commande built-in de fish.
❯ cat conf.d/abbr.fish
abbr -a --set-cursor='%' -- nhc 'clush -b -f4 -w % nhc -a'
abbr -a -- brol 'tmux -L brol'
La saisie d’une commande abrégée validé par la touche Enter, étend automatiquement la ligne par la commande réelle et c’est exécuté. Mais il y a mieux, j’ai beaucoup apprécié l’option --set-cursor
qui permet de taper dans son terminal la commande abrégée, de frapper la barre d’espace, et paf ! La ligne est remplacée par la vraie commande, et le curseur placé à la place du caractère %. Ne reste plus qu’à coller les arguments qui vont bien.
Dernière chose, je continue d’écrire mes scripts shell comme avant avec le shebang #!/bin/sh
.