Estoy tratando de encontrar la documentación sobre qué, exactamente, printf
está haciendo el comando en update_terminal_cwd
.
Si aún no lo sabía, la update_terminal_cwd
función se define (al menos en Mac OS X 10.7.4) /etc/bashrc
y en ese mismo archivo se agrega la función $PROMPT_COMMAND
para que se ejecute cada vez que presiona enter en la Terminal.
El texto de la update_terminal_cwd
función en sí 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"
}
Esto está a unos pocos pasos de intentar configurar los nombres de las pestañas de mi Terminal desde la línea de comandos , lo que se puede hacer con bastante facilidad , pero el nombre de la pestaña se restablece cuando ssh
se ingresa en un cuadro.
Esto me llevó a ¿Cómo detener el cambio automático de títulos de iTerm? y la lista bastante oscura de secuencias de control en Mac .
Si va a ese último enlace y busca la cadena osc ps ; pt bel
, encontrará la sección que define el carácter de escape que hace que funcione el cambio de nombre de la pestaña. Sin embargo, si bien eso explica printf '\e]1;%s\a'
(observe el "1"), no explica lo que hace el "7" en la update_terminal_cwd
función que cité anteriormente.
donde esta documentado esto?? (¿Y por qué PWD_URL
incluye el prefijo file://
?)
desde Terminal.app v2.6.1 (OS X 10.11), en Preferencias/Perfiles/Ventana, hay un texto resaltado "Secuencia de escape..." que dice:
El directorio de trabajo y la ubicación del documento actual se pueden configurar mediante la secuencia de escape del comando del sistema operativo (OSC):
ESC ] Sal ; Punto BEL
El parámetro Ps es 6 (documento) o 7 (directorio de trabajo) y Pt es una URL de "archivo:". La URL debe incluir un nombre de host para eliminar la ambigüedad de las rutas locales y remotas, y los caracteres deben estar codificados en porcentaje según corresponda.
Cuando tanto el directorio de trabajo como el documento están configurados, solo se muestra el documento.
también, desde Preferencias/Perfiles/Pestaña:
Los títulos de las ventanas y las pestañas se pueden configurar mediante la secuencia de escape del comando del sistema operativo (OSC):
ESC ] Sal ; Punto BEL
El parámetro Ps es 1 (título de la pestaña, también conocido como "título del icono") o 2 (título de la ventana) y Pt es el texto del título.
Se mostrará un título de ventana personalizado dentro del título de la pestaña (junto con los otros elementos seleccionados) si no hay un título de pestaña personalizado.
El siguiente comando bash de ejemplo establece el título de la pestaña en "Mi pestaña":
printf '\e]1;%s\a' 'My Tab'
David X
sleep 5
actualiza parte de la pestaña y el título de la ventanasleep
, pero no estoy seguro de cómo se activa.