Estoy tratando de encontrar la documentación sobre qué, exactamente, está haciendo el comando printf
en update_terminal_cwd
.
Si aún no lo sabía, se define la función update_terminal_cwd
(al menos en Mac OS X 10.7.4) en /etc/bashrc
y en ese mismo archivo, la función se agrega a $PROMPT_COMMAND
para que se ejecute cada vez que presione enter en la Terminal.
El texto de la función update_terminal_cwd
es el 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"
}
A unos pasos del agujero del conejo, intente configurar 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 aparece restablece cuando ssh
ing en un cuadro.
Esto me llevó a ¿Cómo detener el cambio automático de títulos de iTerm? y el poco claro lista de secuencias de control en 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 cambio de nombre de la pestaña funcione. Sin embargo, mientras eso explica printf '\e]1;%s\a'
(note el "1"), no explica lo que hace el "7" en la función update_terminal_cwd
que cité anteriormente.
¿Dónde está esto documentado? (¿Y por qué PWD_URL
incluye el prefijo file://
?)