====== Shell fish ======
* Objet : Fichiers de configuration pour le shell fish
* Niveau requis : {{tag>débutant avisé}}
===== Installation =====
Installation de fish
apt install fish
Utiliser fish par défaut
chsh
Changing the login shell for
Enter the new value, or press ENTER for the default
Login Shell: /usr/bin/fish
//Se reconnecter pour prendre en compte la modification.//
===== Configuration =====
{{https://i.imgur.com/ttwWwkm.png}}
Mes fichiers de configuration:
eval (dircolors -c ~/.dircolors | sed 's/>&\/dev\/null$//')
# vi mode
#fish_vi_key_bindings
function fish_mode_prompt --description "called from fish_right_prompt"
# do stuff
end
# abbr
abbr hist 'history'
abbr vi 'nvim'
abbr ls 'ls --color'
abbr ll 'ls -lh'
abbr llt 'ls -lhrt'
abbr lls 'ls -lhrS'
abbr grep 'grep --binary-files=text'
abbr diff colordiff
abbr grep 'grep --color'
abbr igrep 'grep -i'
abbr netstat 'ss -a'
#########################################################
# couleur dans le man
#########################################################
set -gx LESS_TERMCAP_mb \e'[01;31m'
set -gx LESS_TERMCAP_md \e'[01;31m'
set -gx LESS_TERMCAP_me \e'[0m'
set -gx LESS_TERMCAP_se \e'[0m'
set -gx LESS_TERMCAP_so \e'[01;44;33m'
set -gx LESS_TERMCAP_ue \e'[0m'
set -gx LESS_TERMCAP_us \e'[01;32m'
**Prompt de gauche**: Affiche le mode vi et le path courant
function fish_prompt
set -l last_status $status
set_color normal
printf '['
switch $fish_bind_mode
case default
set_color --bold red
printf 'n'
case insert
set_color --bold 215eb1
printf 'i'
case visual
set_color --bold magenta
printf 'v'
end
set_color normal
printf '] '
set_color 9cc8f9
printf '%s' (prompt_pwd)
if [ $last_status -eq 0 ]
set_color -o 215eb1
else
set_color -o red
end
printf ' > '
set_color normal
end
**Prompt de droite**: Affiche la durée d'exécution de la dernière commande et l'heure:
function __bobthefish_cmd_duration -S -d 'Show command duration'
[ "$theme_display_cmd_duration" = "no" ]; and return
[ -z "$CMD_DURATION" -o "$CMD_DURATION" -lt 100 ]; and return
if [ "$CMD_DURATION" -lt 5000 ]
echo -ns $CMD_DURATION 'ms'
else if [ "$CMD_DURATION" -lt 60000 ]
__bobthefish_pretty_ms $CMD_DURATION s
else if [ "$CMD_DURATION" -lt 3600000 ]
set_color $fish_color_error
__bobthefish_pretty_ms $CMD_DURATION m
else
set_color $fish_color_error
__bobthefish_pretty_ms $CMD_DURATION h
end
set_color $fish_color_normal
set_color $fish_color_autosuggestion
[ "$theme_display_date" = "no" ]
or echo -ns ' ' $__bobthefish_left_arrow_glyph
end
function __bobthefish_pretty_ms -S -a ms interval -d 'Millisecond formatting for humans'
set -l interval_ms
set -l scale 1
switch $interval
case s
set interval_ms 1000
case m
set interval_ms 60000
case h
set interval_ms 3600000
set scale 2
end
switch $FISH_VERSION
# Fish 2.3 and lower doesn't know about the -s argument to math.
case 2.0.\* 2.1.\* 2.2.\* 2.3.\*
math "scale=$scale;$ms/$interval_ms" | string replace -r '\\.?0*$' $interval
case \*
math -s$scale "$ms/$interval_ms" | string replace -r '\\.?0*$' $interval
end
end
function fish_right_prompt -d "Write out the right prompt"
__bobthefish_cmd_duration
set_color white
date '+%H:%M:%S'
set_color normal
end