Existem diferenças não relacionadas entre o Red Hat 6 e o Ubuntu 16 para a entrada screen-256color
: o último adiciona dim
e omite initc
. Nenhuma dessas alterações está relacionada a teclas de cursor.
Presumivelmente, o valor de TERM
fora tmux
é xterm
. Também há alterações não relacionadas entre os dois sistemas para a entrada xterm
(as extensões de cor do cursor mencionado no banco de dados do terminal).
No entanto, há uma diferença significativa entre as entradas linux
e xterm
: as entradas xterm
(em ambos os casos) inicializam o terminal para usar modo de aplicação para cursor e teclado -chaves, enquanto que para linux
não. O modo de aplicação envia sequências de caracteres diferentes para as teclas do cursor (que é o ponto desta questão).
O Red Hat 6 tem o tmux 1.6, o Ubuntu 16 tem o tmux 2.3. Em ambos os casos, tmux
lê a descrição do terminal e tenta para combinar as seqüências de escape enviadas pelas teclas de função e cursor do terminal fora , e armazena sua noção daquelas chaves (como um código de acesso e informações de controle / mudança) antes de gerar uma seqüência de escape equivalente que segue a descrição do terminal tmux
Se o arquivo .tmux.conf
tiver configurações conflitantes, conforme mostrado em Ctrl + teclas de seta trabalhando no tmux , então os programas tmux
bastante antigos e bastante novos serão diferentes para as teclas de cursor modificadas:
- no CentOS6, mudado para cima, dá
^[[A^[[1;2A
, enquanto o Ubuntu mostra^[[A
. - control-uparrow também difere.
O motivo da diferença é (na verdade) uma melhoria em tmux
, para ler as definições de chave estendidas do banco de dados de terminal. Na versão mais antiga, tmux
não percebeu que as chaves do estilo xterm não estavam definidas na descrição do terminal screen-256color
. Então passou a informação. Na versão mais recente, tmux
vê que eles não estão definidos e (porque foi informado que está ciente das chaves xterm), usa apenas aqueles que são definidos na descrição do terminal especificada. / p>
Leitura adicional: