In tmux, freccia e ctrl + freccia danno entrambi lo stesso codice


3

Ubuntu 12.10, TERM è impostato su screen-256color in putty e tmux.conf, confermato quando exportentro e esce da una sessione di tmux.

Se corro cat > /dev/nulle quindi premere <down>poi <c-down>, ricevo ^[[B^[OBal di fuori di una sessione tmux, ma ^[[B^[[Bmentre all'interno di una sessione.

Ho provato setw -g xterm-keys onnel mio .tmux.conf inutilmente.

Risposte:


3

screen-256colorè un valore TERM valido per l'uso all'interno di tmux , ma xterm-256colorprobabilmente sarebbe più appropriato al di fuori di tmux (dove sei "appena dentro" PuTTY ). Il collegamento a una sessione di tmux con un valore TERM non preciso è simile a mentire a tmux sulle sequenze di controllo utilizzate dall'emulatore di terminale (ad esempio, PuTTY probabilmente non supporta esattamente le sequenze di controllo descritte dalla screen-256colorvoce del database terminfo).

Non uso PuTTY , ma cercare un po 'mi ha lasciato l'impressione che PuTTY non supporti l'invio di sequenze che significano effettivamente (ad es.) Control+ Down Arrow. Le diverse sequenze che osservi sono in realtà due sequenze diverse per il semplice Down Arrow. ^[[Bè la sequenza normale, ed ^[OBè per quando un programma ha richiesto la modalità "tasti cursore dell'applicazione".

Quindi, quando PuTTY invia ^[OB, qualsiasi programma che prevede xtermsequenze in stile interpreterà quella sequenza come " Down Arrow, mentre in modalità tasti cursore dell'applicazione" (o semplicemente Down Arrow), ma mai come Control+ Down Arrow. In particolare, quando tmux vede una di quelle sequenze, la interpreta come una pianura Down Arrow. La sequenza che tmux genera quindi per il suo riquadro dipende dal fatto che quel particolare riquadro sia stato configurato o meno per la modalità del tasto cursore dell'applicazione.

Nel tuo caso, non hai chiesto a tmux di passare dal riquadro alla modalità tasti cursore dell'applicazione, quindi ha tradotto la sequenza nella sequenza "normale" in entrambi i casi. Dovresti essere in grado di osservare la differenza eseguendo comandi come questi (all'interno o all'esterno di un tmux ) (i comandi tput generano le sequenze di controllo che attivano e disattivano le modalità terminali richieste):

# Activate "Application Cursor Keys" (and "Application Keypad")
tput smkx ; cat
# Press Down Arrow to see '^[OB', then Control-C to kill the cat

# Activate "Normal Cursor Keys" (and "Normal Keypad")
tput rmkx ; cat 
# Press Down Arrow to see '^[[B', then Control-C to kill the cat

Se puoi in qualche modo convincere PuTTY a inviare sequenze di tasti freccia modificati in stile xterm (cioè ^[[1;5Bper Control+ Down Arrow), allora tmux genererà le stesse sequenze per i suoi riquadri quando xterm-keysè abilitato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.