Le vendredi 26 avril, Ismael Touama a écrit :
> Voici ma variable PS1:
> PS1="\[\033[1;36m[\u@\h \W] #\033[0m "
C'est mal. Pour t'en convaincre, écris une ligne qui dépasse la largeur
de ton terminal et essaye de l'éditer ensuite.
Tu dois terminer par \] la séquence que tu commences par \[.
> j'aurais plus écrit ceci mais
> cela ne passe pas au prompt:
> PS1="\[\033[1;36m]\][\u@\h \W] #\[\033[0m]\] "
^ ^
Erreur : les caractères indiqués ci-dessus (si tu as une police à chasse
fixe) sont des caractères imprimables. Ils n'ont rien à faire à
l'intérieur de la séquence entre \[ et \].
> 1. pour les couleurs je les ai encadrées ([])
Il ne faut pas. La séquence ANSI est "<Esc>[1;36m". Il n'y a pas de
crochet fermant. La liste des numéros doit être encadrée par "<Esc>[" au
début et par "m" à la fin.
> 2. j'ai encadré ces même couleurs de \[ et \]
Bien.
> \[[numCol]\]
Mal. C'est "\[ <Esc>[ numCol m \]" sans les espaces que j'ai ajoutés
pour clarifier. Dans le détail :
\[ début de séquence non imprimable
<Esc>[ début de la séquence ANSI de définition des couleurs
1;36 codes pour gras (1) et texte en cyan (36)
m fin de séquence ANSI
\] fin de séquence non imprimable.
La séquence ANSI est destinée à ton terminal. Les \[ et \] sont destinés
à bash pour qu'il sache où est le curseur.
Le prompt que tu voulais est probablement
PS1="\[\e[1;36m\][\u@\h \W]#\[\e[0m\] "
--
Edgar Bonet Tel: +33 476 881 096
Laboratoire Louis Néel -- CNRS Mobile: +33 677 197 939
25 av. des Martyrs, BP 166 Fax: +33 476 881 191
38042 Grenoble cedex 9, France e-mail: bonet@???