Estoy tratando de encontrar la documentación sobre lo que, exactamente, el printf
está haciendo en update_terminal_cwd
.
Por si no lo sabías ya, el update_terminal_cwd
función se define (al menos en Mac OS X 10.7.4) en /etc/bashrc
y en ese mismo archivo se añade la función $PROMPT_COMMAND
para que se ejecute cada vez que se pulsa enter en el Terminal.
El texto de la update_terminal_cwd
es la siguiente:
update_terminal_cwd() {
# Identify the directory using a "file:" scheme URL,
# including the host name to disambiguate local vs.
# remote connections. Percent-escape spaces.
local SEARCH=' '
local REPLACE='%20'
local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
printf '\e]7;%s\a' "$PWD_URL"
}
Esto es unos cuantos pasos en la madriguera del conejo de intentar establecer los nombres de las pestañas de mi Terminal desde la línea de comandos que se puede hacer con bastante facilidad pero el nombre de la pestaña se restablece cuando ssh
en una caja.
Esto me llevó a ¿Cómo detener el cambio automático de los títulos de iTerm? y el más bien oscuro lista de secuencias de control en el Mac .
Si vas a ese último enlace y buscas la cadena osc ps ; pt bel
encontrarás la sección que define el carácter de escape que hace que el renombramiento de las pestañas funcione. Sin embargo, aunque eso explica printf '\e]1;%s\a'
(nótese el "1"), no explica qué hace el "7" en el update_terminal_cwd
función que he citado anteriormente.
¿Dónde está documentado esto? (¿Y por qué PWD_URL
incluir el prefijo file://
?)
0 votos
El prompt de la caja ssh remota podría estar enviando algunas cadenas que cambian el título de tu terminal local. He notado que algo como
sleep 5
actualiza parte del título de la pestaña y de la ventana para que seasleep
pero no estoy seguro de cómo se activa.