update_terminal_cwd demistificato per favore?

4

Sto cercando di trovare la documentazione su cosa, esattamente, il comando printf sta facendo in update_terminal_cwd .

Se non lo sapevi già, la funzione update_terminal_cwd è definita (almeno su Mac OS X 10.7.4) in /etc/bashrc e in quello stesso file la funzione viene aggiunta a $PROMPT_COMMAND in modo che venga eseguita ogni volta che si preme enter nel Terminale.

Il testo della funzione update_terminal_cwd è la seguente:

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"
}

Questo è qualche passo in giù nella tana del coniglio dal provare a imposta i miei nomi delle schede Terminale dalla riga di comando , che può essere eseguita piuttosto facilmente , ma il nome della scheda diventa ripristina quando ssh ing in una casella.

Questo mi ha portato a Come interrompere la modifica automatica dei titoli iTerm? e il piuttosto oscuro elenco delle sequenze di controllo sul Mac .

Se vai a quell'ultimo link e cerchi la stringa osc ps ; pt bel , troverai la sezione che definisce il carattere di escape che fa funzionare la ridenominazione delle schede. Tuttavia, mentre ciò spiega printf '\e]1;%s\a' (si noti il "1"), non spiega cosa fa il "7" nella funzione update_terminal_cwd che ho citato sopra.

Dove è documentato ?? (E perché PWD_URL include il prefisso file:// ?)

    
posta Wildcard 23.12.2015 - 05:38
fonte

1 risposta

3

da Terminal.app v2.6.1 (OS X 10.11), in Preferenze / Profili / Finestra, c'è il testo evidenziato "Sequenza di fuga ..." che dice:

The working directory and location of the current document may be set using the Operating System Command (OSC) escape sequence:

ESC ] Ps ; Pt BEL

The parameter Ps is either 6 (document) or 7 (working directory) and Pt is a “file:” URL. The URL should include a hostname to disambiguate local and remote paths, and characters must be percent-encoded as appropriate.

When both the working directory and document are set only the document is displayed.

anche da Preferenze / Profili / Scheda:

Window and tab titles may be set using the Operating System Command (OSC) escape sequence:

ESC ] Ps ; Pt BEL

The parameter Ps is either 1 (tab title—aka “icon title”) or 2 (window title) and Pt is the title text.

A custom window title will be displayed within the tab title (along with the other selected items) if there is no custom tab title.

The following example bash command sets the tab title to “My Tab”:

printf '\e]1;%s\a' 'My Tab'

    
risposta data 15.01.2016 - 06:51
fonte

Leggi altre domande sui tag