On Sat, 21 Apr 2001, Marc Mongenet wrote:

> Félix Hauri wrote:
> > Pour m'en sortir, j'avais rajouté un saut de ligne de manière à avoir le
> > prompts sur une ligne ne comportant pas de séquences d'échapement.
> 
> Je crois que c'est une excellente idée ! En plus je ne serais plus géné
> par les longues invites (car j'aime aussi indiqué dans quel répertoire
> je suis).
> 
> > Sinon ``awk''! ;=)  Connais-tu la variable PROMPT_COMMAND?
> 
> Oui, mais je dois avouer que je ne vois pas qu'en faire dans ce cas.
Compter la position du prompt SANS les caractères spéciaux, forcer le
comptage moins trois, via une ligne supplémentaire et l'impression
d'espaces, encadrés par ``Esc[s\n'' et ``Esc[u'', (Solution lourde que
j'ai vite abandonnée, mais qui marche;)

où comme je l'ai fait: renvoyer une partie des infos sur la première ligne
de l'écran pour un tty ou en titre de la fenêtre pour un xterm:
------------------- add this to your .bashrc ;-) --------------
  case $TERM in
    xterm* )
        PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
        ;;
    linux* )
        PROMPT_COMMAND='printf \
                "\033[s\033[H\033[33;44;1m%-${COLUMNS}s\033[u" \
                "$USER@$HOSTNAME: $PWD"' ;;
  esac
------------------- add this to your .bashrc ;-) --------------

J'utilise directement des séquences ANSI. Il me semble que la plupart
des terminaux implémantés sous Linux les reconnaissent intégralement.

J'ai appris l'existance de la commande ``tput'' hier en lisant le courier
de Marc Mongenet, mais je n'ai pas trouvé dans la page de man, les
correspondances aux commandes ANSI suivantes:
    Esc[s : Sauvegarder la position du curseur.
    Esc[u : Renvoyer le curseur à la position sauvegardée.

Quand aux commandes pour le titre d'un XTerm: ``Esc]0;...\007'', je
l'ai trouvé dans un ``/etc/profile'' d'une distrib RH6.2, n'ai trouvé
aucune doc nul part.

--
 Félix Hauri  -  <[EMAIL PROTECTED]>  -  http://www.f-hauri.ch

--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question.

Répondre à