Como faço para descobrir os códigos de teclas Ctrl + seta para cima e para baixo para a tela TERM =?

0

Estou usando muito o tmux, e já consegui ajustar meu terminal OS X para enviar os códigos de teclas corretos para as teclas Ctrl + esquerda e direita ( 3b e 3f ). Eu encontrei essas informações na web. No entanto, também preciso de Ctrl + para cima e para baixo para funcionar corretamente. Como descubro quais códigos de chave o tmux espera? A variável TERM está definida como screen enquanto dentro do tmux. Posso consultar o banco de dados do terminal na minha máquina Linux para os códigos?

No momento, meu terminal do OS X simplesmente envia a seta para a esquerda e para a direita, sem o modificador Ctrl.

    
por Arne 19.01.2014 / 17:02

1 resposta

2

Acabei de descobrir que o tmux parece esperar códigos de teclas xterm, não importando o tipo de terminal screen . Por isso, soquei as teclas no xterm, usando Ctrl-V como prefixo e obtive estes códigos:

  • tecla esquerda: ^[[D
  • tecla direita: ^[[C
  • tecla para cima: ^[[A
  • tecla para baixo: ^[[B
  • C-left: ^[[1;5D
  • C-right: ^[[1;5C
  • C-up: ^[[1;5A
  • C-down: ^[[1;5B

Agora posso configurar o terminal do OS X para enviar esses códigos de chave, e o tmux funciona bem. No entanto, outros aplicativos em execução no tmux serão interrompidos, porque eles não esperam obter códigos-chave xterm. Eu encontrei uma solução alternativa no ArchWiki , que sugere criar sua própria entrada terminfo. Vou tentar isso.

Editar: o FAQ do tmux me pegou, e adicionei as duas linhas a seguir ao meu ~/.tmux.conf :

set -g default-terminal "xterm-256color"
setw -g xterm-keys on                   

Agora posso usar as setas C no tmux, bash, emacs e outros programas.

Mais uma edição: Como o tmux não suporta bce (apagamento de cor de fundo), eu precisava criar meu próprio terminfo, chamado xterm-256color-nobce:

infocmp xterm-256color | sed 's/bce, //' > xterm-256color-nobce
sudo tic ./xterm-256color-nobce

E certifique-se de usar isso como meu valor de TERM padrão.

    
por 19.01.2014 / 17:46