Configurare i tasti funzione in PuTTY per Vim e Midnight Commander su tmux?


10

Prima di tutto, sono consapevole di poter usare Alt+ 1(attraverso 9 e 0) per sintetizzare i rispettivi tasti funzione ( F1attraverso F10) in Midnight Commander. Mi ha aiutato molte volte, ma per impostazione predefinita premo ancora i tasti funzione attuali in modo intuitivo.

Gist: Sto cercando di eseguire sia Vim che Midnight Commander all'interno di una tmuxsessione (a volte finestra, a volte riquadro), usando PuTTY.

Quindi, per impostazione predefinita, ho la seguente configurazione PuTTY:

Configurazione tastiera PuTTY

Con ESC[n~mappatura

Il problema ora quando si mappa ( map <F1> :tab help<CR>, e anche nmape imap) F1in Vim, è che dà l'effetto di ~( attiva / disattiva caso). E in effetti se premo F1attraverso F5il guscio, la tilde ( ~) è il risultato, insieme a una campana. I tasti funzione funzionano perfettamente in Midnight Commander, tuttavia, usando questa impostazione.

C'è una cosa strana sull'impostazione sopra oltre ai miei problemi con F1: ho anche "mappato" F5( set pastetoggle=<F5>) in Vim. Stranamente che funziona come un fascino, anche se la F5chiave sul guscio dà un ~proprio come F1etc.

Nota: quando si esegue Vim al di fuori di tmux, l'associazione predefinita (e la mia sostituzione) F1funzionano correttamente!

Con mappatura "Linux"

Quindi, naturalmente, ho provato a usare l'impostazione "Linux" nella finestra di dialogo sopra. Quindi quando premo F1Vim entra in modalità insert alla fine della riga (effetto di A). Midnight Commander non riconosce nessuno dei tasti funzione con questa impostazione. Abbastanza sicuro sul guscio F1mi dà Ae una campana ( F2a Be così via).

Cosa mi sto perdendo qui? Come posso ottenere un comportamento uniforme in cui sia Midnight Commander che Vim riconosceranno i tasti funzione?


Informazioni addizionali:

Il sistema remoto è Ubuntu 14.04 con LANG=en_US.UTF-8.

TERMè impostato al di TERM=xtermfuori della tmuxsessione e TERM=screense visto dall'interno di un riquadro o finestra.

Non sto usando:

set-option -g default-terminal "screen-256color"

per sovrascrivere il tipo di terminale all'interno tmux.

Risposte:


8

Il problema è l' TERM=xtermesterno tmux. Non esiste una configurazione di PuTTY che corrisponda alla xtermdescrizione del terminale e la mancata corrispondenza si inserisce screeno tmux(scegli)

Vedi ad esempio, nelle FAQ di ncurses Perché non usare TERM impostato su "xterm"? . La raccomandazione è ovviamente da impostare

TERM=putty

Un rapido controllo usando tackmostra che questa combinazione ( TERM=putty, tmux) funziona per Ubuntu 14.04 (dovresti aver installato il ncurses-termpacchetto, che include questo).


Grazie. In realtà non sono riuscito a trovarlo tackaffatto, non con apt-file searchné dopo l'installazione del pacchetto che mi hai consigliato. Ma toe -a|grep -i puttyconferma che esistono diverse definizioni di terminale PuTTY (tra cui a putty-256color). Lo proverò, tornerò da te e accetterò di conseguenza.
0xC0000022L

Non avevo notato che tack non era in Ubuntu 14.04 (è stato in Debian un po ', ma probabilmente è stato trascurato quando l'ho diviso dal tarball dei sorgenti di ncurses). Controllando la mia macchina, sembra che stavo eseguendo uno dei miei pacchetti.
Thomas Dickey,
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.