Cómo configurar automáticamente el título del terminal al nombre del directorio sin ruta

11

Actualmente, el título de mi terminal / pestaña bash está configurado según el directorio en el que estoy. Por ejemplo:

bob@bobscomputer:~/i/had/some/great/pie/yesterday

Esto no es muy útil si tengo varias pestañas abiertas una al lado de la otra. Por ejemplo, si tengo 4 pestañas del directorio anterior abiertas de lado a lado, todo lo que veo es

bob@bobscomputer:~/i/had...

4 veces.

Me gustaría que todos mis títulos de terminal se configuren automáticamente en la última parte de la ruta. En el ejemplo anterior, me gustaría que el título sea

yesterday

Obviamente, el título debería cambiar cuando cambio los directorios. Me gustaría hacer esto sin cambiar mi solicitud, por lo que la solicitud y el título del terminal deberían ser diferentes.

¿Hay alguna forma de hacer esto?

Rana fija
fuente
Para ZSH, mira aquí: superuser.com/a/1328085/122021
LAFK dice Restablecer Mónica

Respuestas:

11

¿Por qué quieres hacerlo sin modificar tu variable PS1? Esa es la forma correcta de hacerlo.

Si ejecuta lo siguiente, obtendrá lo que desea:

export PS1="\[\e]0;\W\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "

Esto solo toma el mensaje predeterminado:

export PS1="\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ "

... y reemplazando \u@\h: \wcon \W.

Puede hacer lo mismo con cualquier comando que haga eco del código de escape correcto:

echo -en "\e]0;${PWD##*/}\a"

... pero entonces estarías luchando constantemente contra bash para evitar que lo haga usando PS1 (la mejor manera).

Steven K
fuente
2
Gracias, no me había dado cuenta de que PS1 establece el título y el mensaje de forma independiente. En mi .bashrc, en el caso "$ TERM" en xterm * | rxvt *), configuro PS1 = "[\ e] 0; $ {debian_chroot: + ($ debian_chroot)} \ W \ a] $ PS1", y Hace exactamente lo que quería.
Staring Frog
Esta pregunta hace un buen trabajo al explicar qué significa todo ese gobbledygook de PS1: askubuntu.com/questions/404341/…
congusbongus
3

Si. Prepend: \[\e]0;\W\a\]a tu PS1. Esto no cambiará la apariencia de sus mensajes, pero establecerá automáticamente el título de las pestañas de su terminal en el nombre base del directorio de trabajo actual.

LikeTheRock
fuente