tmux / screen ctrl + seta (esquerda direita) não funciona no SSH

2

Configurei tmux para pular palavras no Ctrl + direita / esquerda:

set-window-option -g xterm-keys on

Funciona muito bem, mas como eu faço SSH, ele não funciona e imprime ;5D ou ;5C ..

O mesmo problema ocorreu quando usei screen , existe alguma configuração específica para tmux / screen no SSH?

    
por SagiLow 26.02.2015 / 10:18

1 resposta

4

Não é o tmux nem a tela que "pula as palavras"; a entrada de texto é fornecida pelo seu shell . Portanto, você deve descobrir qual sequência de teclas Ctrl + setas geram e ensinar seu shell que significa "pular uma palavra". Caso contrário, ele irá parar de interpretar a sequência intermediária porque não é reconhecido.

Se você estiver usando o bash, ele precisará de algumas das principais definições de ncurses / terminfo e outras do arquivo "inputrc". Portanto, primeiro certifique-se de ter as definições de terminal ncurses instaladas ("ncurses-term" ou similar). E se você tiver um ~/.inputrc personalizado, diga para importar o sistema, usando:

$include /etc/inputrc

Se isso não ajudar, adicione um mapeamento personalizado ao seu arquivo ~ / .inputrc (no servidor, é claro):

  1. No bash, pressione Ctrl V (a tecla "verbatim input"), seguida de Ctrl . Você verá a sequência de escape "Ctrl + right" inserida como texto simples:

    ^[[1;5C
    

    O ^[ significa um caractere "ESC"; o resto é texto simples. Então, isso é ESC [ 1 ; 5 C .

  2. Em man bash , localize o comando inputrc ("readline") para pular uma palavra. (É forward-word .)

  3. Em ~/.inputrc , adicione a sequência de teclas e o comando. (O "ESC" é escrito como \e .)

    "\e[1;5C": forward-word
    
  4. Repita o mesmo para Ctrl .

  5. Feche o ssh, conecte-se novamente e veja se funciona.

Observe que a maioria das distribuições já possui esses mapeamentos específicos em /etc/inputrc .

    
por 26.02.2015 / 12:33