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:// ?)