Como faço o remapeamento da nova linha e do retorno de carro, independentemente do terminal usado para conexão?

3

Toda a minha configuração é armazenada na minha conta do github ( link ) para que eu possa clonar meu repositório e executar o script de instalação e minha casa está configurada para usar todas as minhas ferramentas. Eu instalo meu repositório dotfiles em minha casa em qualquer servidor que eu configure, então é conveniente e eu não preciso voltar aos controles vanim vim e tmux.

Acabei de usar o JuiceSSH do meu Nexus 6 e quero poder me conectar às minhas sessões do tmux pelo meu telefone.

O problema surge quando uso o tmux. O comportamento do terminal no JuiceSSH é diferente daquele de algo como o Terminal Gnome no Ubuntu. Juice parece estar enviando ctrl + j, enquanto outros termos mandam ctrl + m.

Este não é um problema até agora, exceto no tmux. Estou usando o navegador vim + tmux ( link ) para vincular ctrl + h, ctrl + j, ctrl + k, ctrl + l para navegar entre os painéis no vim e no tmux. Quando pressiono a tecla enter no teclado do meu telefone, ele navega até o próximo painel inferior no tmux (C-j). Quando eu ctrl + m de qualquer dispositivo, recebo o retorno que eu estou procurando. Quando não estou usando o meu próprio tmux.conf, onde o C-j não está vinculado, a tecla enter funciona no meu telefone com o JuiceSSH.

O que eu quero fazer é alterar a configuração do meu terminal no meu .bashrc ou algo assim para corrigir isso para que ele funcione com o tmux independentemente do que o meu terminal envia para a tecla enter.

    
por Mnebuerquo 26.07.2015 / 16:28

3 respostas

0

Se o telefone literalmente emite c-j, então não, a única solução é alterar a ligação no tmux-navigator. E eu acho que ssh é puramente baseado em bytes. (Você também pode enviar sinais unix, por exemplo, como ctrl + c / interrupção, mas é isso). É capaz de funcionar porque o seu telefone diz ao servidor ssh que está usando c-j como nova linha quando a sessão é aberta.

RFC 4254 - O protocolo de conexão Secure Shell (SSH)

    
por 26.07.2015 / 17:00
0

Eu acho que você quer:

stty -icrnl

... embora isso pareça um pouco estranho para mim. Entendo que os sistemas Apple são padronizados para uma \r eturn line-ending, mas em todos os meus sistemas Linux um terminal padrão stty sane fará exatamente o oposto e traduzirá i nput c arriage r eturna n ew l ines. Seu dispositivo Android e meus sistemas Linux compartilham um kernel do sistema - que é o que lida com o terminal line-discipline que as configurações stty afetam. Ainda assim, para enviar através de um \r eturn quando você pressionar \r eturn você pode simplesmente dizer para parar isso.

    
por 26.07.2015 / 20:14
0

Obrigado por suas respostas, pessoal!

Parece que meu problema foi resolvido mesmo quando eu estava fazendo a pergunta. O JuiceSSH acaba de lançar uma atualização que corrige o problema da tecla enter.

link

A atualização de 25 de julho do JuiceSSH "Corrigida a chave de entrada no Nano ao usar a versão mais recente do Teclado do Google" parece ser a solução para o meu problema. Eu encontrei a atualização depois de fazer a pergunta esta manhã, mas antes de ler as respostas esta tarde.

Então, @mikeserv, você está certo de que parece um pouco estranho. Eu estava tentando contornar um bug no aplicativo do telefone, ligando as chaves de uma maneira estranha. Mas isso não é mais necessário, já que o telefone agora envia o caractere correto.

    
por 26.07.2015 / 22:02