
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 tmux
sessão (às vezes janela, às vezes painel), usando PuTTY.
Então, por padrão, tenho a seguinte configuração do PuTTY:
Com ESC[n~
mapeamento
O problema agora ao mapear ( map <F1> :tab help<CR>
, e também nmap
and 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á A
um sino ( F2uma B
e 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=xterm
fora da tmux
sessão 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 dentro de tmux
.
Responder1
O problema é o TERM=xterm
exterior tmux
. Hánãoconfiguração do PuTTY que corresponde à xterm
descrição do terminal, e a incompatibilidade alimenta screen
ou 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 usandotack
mostra que esta combinação ( TERM=putty
, tmux
) funciona para Ubuntu 14.04 (você deveria ter instalado o ncurses-term
pacote que inclui isso).