Configurando teclas de função no PuTTY para Vim e Midnight Commander no tmux?

Configurando teclas de função no PuTTY para Vim e Midnight Commander no tmux?

Em primeiro lugar, estou ciente de que posso usar Alt+ 1(até 9 e 0) para sintetizar as respectivas teclas de função ( F1até F10) no Midnight Commander. Isso me ajudou muitas vezes, mas por padrão ainda pressiono o botãorealteclas de função intuitivamente.

Gist: Estou tentando executar o Vim e o Midnight Commander dentro de uma tmuxsessão (às vezes janela, às vezes painel), usando PuTTY.

Então, por padrão, tenho a seguinte configuração do PuTTY:

Configuração do teclado PuTTY

Com ESC[n~mapeamento

O problema agora ao mapear ( map <F1> :tab help<CR>, e também nmapand imap) F1no Vim, é que ele dá o efeito de ~(alternar maiúsculas e minúsculas). E, de fato, se eu pressionar F1no F5shell, o til ( ~) é o resultado,juntocom um sino. As teclas de função funcionam perfeitamente no Midnight Commander, usando esta configuração.

Há uma coisa estranha na configuração acima, além dos meus problemas F1: eu também "mapeei" F5( set pastetoggle=<F5>) no Vim. Estranhamentequefunciona perfeitamente, mesmo que a F5chave no shell dê ~exatamente como F1etc.

Observação:ao executar o Vim fora do tmux, a ligação padrão (e minha substituição) funciona F1bem!

Com mapeamento "Linux"

Então, naturalmente, tentei usar a configuração "Linux" na caixa de diálogo acima. Então quando pressiono F1o Vim entra em modo de inserção no final da linha (efeito de A). Midnight Commander não reconhece nenhuma das teclas de função com esta configuração. Com certeza na casca F1me dá Aum sino ( F2uma Be assim por diante).

O que estou perdendo aqui?Como posso obter um comportamento uniforme onde tanto o Midnight Commander quanto o Vim reconhecerão as teclas de função?


Informação adicional:

O sistema remoto é o Ubuntu 14.04 com LANG=en_US.UTF-8.

TERMé definido como TERM=xtermfora da tmuxsessão e TERM=screenquando visto de dentro de um painel ou janela.

Eu não estou usando:

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

para substituir o tipo de terminal dentro de tmux.

Responder1

O problema é o TERM=xtermexterior tmux. Hánãoconfiguração do PuTTY que corresponde à xtermdescrição do terminal, e a incompatibilidade alimenta screenou tmux(faça sua escolha).

Veja por exemplo, no FAQ do ncursesPor que não usar apenas TERM definido como "xterm"?. A recomendação é, obviamente, definir

TERM=putty

Uma verificação rápida usandotackmostra que esta combinação ( TERM=putty, tmux) funciona para Ubuntu 14.04 (você deveria ter instalado o ncurses-termpacote que inclui isso).

informação relacionada