Ctrl + teclas de seta trabalhando no tmux

4

Quando eu executo o SSH em nosso servidor, as seqüências de controle + seta estão funcionando bem para mim: Ctrl + V então Ctrl + para cima , para baixo , para a direita , para a esquerda fornece ^[OA , ^[OB , ^[OC e ^[OD respectivamente. No tmux, recebo ^[[A , ^[[B , ^[[C e ^[[D .

Estou conectando ao Ubuntu via PuTTY, mas

  • Eu tenho o conjunto de terminais correto ( putty porque ncurses-term está instalado). Todas as outras combinações de teclas estão funcionando no shell principal.
  • Estou usando o conjunto de caracteres correto (UTF-8).
  • Estou definitivamente adquirindo um terminal de 256 cores (tentei várias invocações de TERM=... tmux )
  • Eu li as FAQs do tmux que dizem para usar esta configuração:

    set -g terminal-overrides "xterm*:kLFT5=\eOD:kRIT5=\eOC:kUP5=\eOA:kDN5=\eOB:smkx@:rmkx@"
    

    fazendo minha configuração assim:

    set -g default-terminal "screen-256color"
    set -g terminal-overrides "screen*:kLFT5=\eOD:kRIT5=\eOC:kUP5=\eOA:kDN5=\eOB:smkx@:rmkx@"
    set-window-option -g xterm-keys on
    

    desde que screen foi recomendado em outro lugar (embora eu tenha tentado putty também.

A única coisa que achei que funcionou está executando tput rmkx em tmux , mas não sei se essa é a solução correta, que outros efeitos ela tem, se outros programas alterarão essa configuração ou até mesmo como ele deve ser definido corretamente em .tmux.conf , para que eu não precise digitá-lo manualmente o tempo todo.

Para futuros leitores:

  1. Não use xterm-keys ;
  2. set -g default-terminal "screen-256color" deve ser sempre screen ou screen-256color porque o tmux usa o tipo de terminal de tela internamente; e
  3. set -g terminal-overrides "putty*:kLFT5=\eOD:kRIT5=\eOC:kUP5=\eOA:kDN5=\eOB:smkx@:rmkx@" deve sempre igualar / glob-match $TERM fora tmux. Por padrão, o PuTTY usa xterm em Conexão > Dados > Tipo de terminal , então use isso na configuração terminal-overrides ou altere o PuTTY para usar putty-256color .
por Walf 10.06.2016 / 06:00

1 resposta

3

Isso é semelhante a Como habilitar combinações de teclas de controle para a tela GNU em massa? , mas aborda um aspecto diferente.

Em uma verificação rápida, parece que o problema é um conflito entre essa linha

set-window-option -g xterm-keys on

e isso:

set -g terminal-overrides "screen*:kLFT5=\eOD:kRIT5=\eOC:kUP5=\eOA:kDN5=\eOB:smkx@:rmkx@"

Eliminar o set-window-option faz sua configuração funcionar para mim.

    
por 10.06.2016 / 11:24