Para iTerm2, ¿cómo hago que el directorio de trabajo aparezca en el título de la ventana?

22

Recientemente cambié a iTerm2 desde la aplicación Terminal predeterminada y tengo un problema de usabilidad.

En la Terminal, el directorio de trabajo en el que se encuentra aparece en la barra de título junto con el proceso y el tamaño de píxel. Por ejemplo, cuando hace clic en Ventana para cambiar entre diferentes sesiones de Terminal, verá: working_directory - process - pixel_size.

En iTerm2, desafortunadamente solo el proceso se muestra en la barra de título. Entonces, si estoy trabajando en múltiples ventanas iTerm2 en diferentes directorios, no puedo diferenciar fácilmente cuál es cuál cuando hago clic en Ventana para elegir uno. Sé que puedo cambiar fácilmente entre ventanas iTerm2 una vez que seleccione una, pero me gustaría identificar exactamente qué ventana quiero de inmediato. (Por cierto, uso Witch, y la tabulación de Comando tampoco ayuda porque aquí nuevamente solo aparece el proceso en la lista).

¿Alguna sugerencia? Miré a través de todas las preferencias y no vi nada. Crear perfiles no es exactamente lo que busco: me gustaría ver el directorio de trabajo actual en los títulos de las ventanas de iTerm2.

whiny_nil
fuente

Respuestas:

20

Con la \033]0;TEXT\007secuencia de escape.

Ejemplo de uso en Bash: echo -ne "\033]0;$PWD\007"

Lo que puede agregar a su $PROMPT_COMMANDsi usa Bash, o adjuntarlo de otro modo PS1para que se vuelva a evaluar con frecuencia.

Ejemplo: export PROMPT_COMMAND='echo -ne "\033]0;$PWD\007"'

recatado
fuente
1
Esto funciona. Solo para ser pedante, agregue la línea de exportación enumerada anteriormente a su archivo ~ / .bashrc.
Spencer
Esto es asombroso Muchas gracias; Esto me ayudó a entender que la respuesta es realmente sobre la programación bash y no tiene nada que ver con iTerm vs Terminal. Como seguimiento para cualquier otra persona, consulte faqs.org/docs/Linux-mini/Xterm-Title.html#s3 y linfo.org/echo.html . ¡Gracias de nuevo!
whiny_nil
55
y para obtener solo el último segmento del camino echo -ne "\033]0;${PWD##*/}\007"(gracias a github.com/barryclark/bashstrap por mostrar el camino)
Anentropic
1
@Spencer: No hay ninguna razón para exportar la variable de shell PROMPT_COMMAND, y en general no se debe exportar una variable de shell a menos que tenga una necesidad específica de compartir la variable con cada programa ejecutado por el shell . Por defecto, las variables que utiliza el shell no deben exportarse; solo exporta variables que están destinadas a ser transmitidas a otros procesos. ~/.bashrcserá ejecutado por cada shell interactivo, por lo que no necesitan heredar las variables establecidas por este script.
Chris Page
Bueno, exportar es cómo usar PROMPT_COMMAND ... Y generalmente es mejor para enlaces de
recatada el
2

Me gusta esta respuesta de esta esencia para agregarla al título de la pestaña

# put this in your .bash_profile
if [ $ITERM_SESSION_ID ]; then
  export PROMPT_COMMAND='echo -ne "\033];${PWD##*/}\007"; ':"$PROMPT_COMMAND";
fi
AshCooman
fuente
0

Si está usando zsh (que es el valor predeterminado en macOS 10.15), coloque esto en su ~ / .zshrc en su lugar:

if [ $ITERM_SESSION_ID ]; then
precmd() {
  echo -ne "\033]0;${PWD##*/}\007"
}
fi

También puedes deletrear \033as \ey \007as \a.

thakis
fuente