Prompt zsh sur deux lignes

© Christian PAULUS. Document créé le 7 août 2009 , mis à jour le 7 août 2009.

L'homme qui ne tente rien ne se trompe qu'une fois. Lao-Tseu

Accueil du site > Astuces > Unix > Prompt zsh sur deux lignes

Zsh / MacOsX 10.5.7 (Leopard)

Exemple de configuration du shell zsh, un prompt sur deux lignes :

Le code à placer à la fin de votre fichiers  .zshrc :

PROMPT=$'%{\e[1;36;40m%}╭─ %n@%m %~ ─ %h
╰─ %# '

donnera quelque chose du genre :

╭─ christianpaulus@Mac-mini ─ 824
╰─ %

Les variables, séquences d’échappement

  • %n : nom utilisateur
  • %m : nom de la machine (jusqu’au premier point)
  • %h : numéro historique
  • %l : terminal courant
  • %T : heure système (HH:MM)

Les couleurs

A composer dans le style : %{\e[TYPE;FGC;BGCm%}

où :

  • type (TYPE) peut être :
    • 00 : normal
    • 01 : gras
    • 04 : souligné
    • 05 : clignotant
    • 07 : inversé caractères/fond
    • 08 : invisible
  • Couleur des caractères (FGC) :
    • 30 : noir
    • 31 : rouge
    • 32 : vert
    • 33 : jaune
    • 34 : bleu
    • 35 : magenta
    • 36 : cyan
    • 37 : blanc
  • Couleur du fond (BGC)
    • 40 : noir
    • 41 : rouge
    • 42 : vert
    • 43 : marron
    • 44 : bleu
    • 45 : magenta
    • 46 : cyan
    • 47 : gris

Exemples :

  • %{\e[0;33;44m%} Caractère normal, jaune sur fond bleu
  • %{\e[0;32m%} Caractère gras, vert

Il est possible d’utiliser les variables de colors. L’extrait du .zhrc ressemblera à cela :

autoload -U colors && colors
PROMPT="%{$bg[black]%}%{$fg[red]%}╭─ %{$fg[blue]%} %n %{$fg[red]%}@%{$fg[cyan]%}%m%{$fg[red]%} - %{$fg[red]%}%~ %{$reset_color%}
%{$fg[red]%}╰─ [%h%1(j.%%%j.)%0(?..:%?)] %# %{$reset_color%}"

Les thèmes de prompt

Possibilité de choisir un prompt parmi une liste de thèmes proposées.

Ajoutez en fin de .zshrc :

utoload -U promptinit && promptinit

Ouvrez un nouveau terminal puis entrez :

prompt -l

La liste des thèmes disponibles apparaît. Choisissez en un, par exemple adam2 qui est un bel exemple de prompt sur 2 lignes. Entrez la commande :

prompt adam2

et admirez.

Liens complémentaires

Plussoyez !

Répondre à cet article

  • Prompt zsh sur deux lignes 14 octobre 2009 14:59, par Christian PAULUS

    Juste pour compléter. Sous bash :

    function prompt
    {
    local WHITE="\[\033[1;37m\]"
    local BRIGHTGREEN="\[\033[1;32m\]"
    local GREEN="\[\033[0;32m\]"
    local CYAN="\[\033[0;36m\]"
    local GRAY="\[\033[0;37m\]"
    PS1="${WHITE}.oO( ${GREEN}\u${BRIGHTGREEN}@${GREEN}\H ${CYAN}\w${WHITE} )${GRAY}
    % "
    }
    prompt

    dans son .bashrc

    La première ligne du prompt donne le nom de la machine et la position (path)
    La seconde ligne laisse le prompt

    Répondre à ce message