Configurando as teclas de função no PuTTY tanto para o Vim quanto para o Midnight Commander no tmux?

9

Primeiramente, estou ciente de que posso usar Alt + 1 (através de 9 e 0) para sintetizar as respectivas teclas de função ( F1 até F10 ) no Midnight Commander. Isso me ajudou muitas vezes, mas por padrão eu ainda pressiono as teclas de função atual intuitivamente.

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

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

ComESC[n~mapping

Oproblemaagoraquandomapear(map<F1>:tabhelp<CR>,etambémnmapeimap)F1noVim,équeeledáoefeitode~(alternarcaso).E,defato,seeupressionarF1atravésdeF5noshell,otil(~)éoresultado,aolongocomumsino.AsteclasdefunçãofuncionamperfeitamentebemnoMidnightCommander,noentanto,usandoessaconfiguração.

Háumacoisaestranhasobreaconfiguraçãoacima,alémdemeusproblemascomF1:Eutambém"mapeei" F5 ( set pastetoggle=<F5> ) no Vim. Estranhamente, isso funciona como um encanto, mesmo que a tecla F5 no shell forneça ~ como F1 etc.

Nota: ao executar o Vim fora de tmux , a ligação padrão (e minha sobreposição) de F1 funciona bem!

Com o mapeamento "Linux"

Então, naturalmente, tentei usar a configuração "Linux" na caixa de diálogo acima. Então, quando eu pressionar F1 , o Vim entra no modo de inserção no final da linha (efeito de A ). O Midnight Commander não reconhece nenhuma das teclas de função com esta configuração. Com certeza no shell F1 me dá A e uma campainha ( F2 a B e assim por diante).

O que estou perdendo aqui? Como posso obter um comportamento uniforme em que o Midnight Commander e o Vim reconheçam as teclas de função?

Informações adicionais:

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

TERM está definido como TERM=xterm fora da sessão tmux e TERM=screen quando 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 em tmux .

    
por 0xC0000022L 23.05.2015 / 11:54

1 resposta

5

O problema é o TERM=xterm outside tmux . Não há nenhuma configuração do PuTTY que corresponda à descrição do terminal xterm , e os feeds de incompatibilidade em screen ou tmux (faça a sua escolha).

Veja, por exemplo, no FAQ ncurses Por que não usar o TERM definido como "xterm"? . A recomendação é claro que é necessário definir

TERM=putty

Uma verificação rápida usando tack mostra que essa combinação ( TERM=putty , tmux ) funciona para o Ubuntu 14.04 (você deve ter instalado o pacote ncurses-term , que inclui isso).

    
por 23.05.2015 / 21:55