Rolar no terminal (OS X) ao executar tail -f e ssh-ed em uma máquina produz alguns caracteres estranhos

Rolar no terminal (OS X) ao executar tail -f e ssh-ed em uma máquina produz alguns caracteres estranhos

Estou conectado a uma máquina remota e executando o tail -f. Cada vez que rolo para cima/para baixo usando o trackpad, aparecem alguns caracteres estranhos, como

OB^[OB^[OB^[OB^[OB^[OOB^[OB^[OB^[OB^[OB^[O

Isso não acontecia antes e não me permite rolar para cima para ver os logs anteriores. Por que isso está acontecendo e como posso desativá-lo?

Responder1

DR: Verifique a configuração do menu Exibir-> Mostrar/Ocultar tela alternativa. Você pode estar no "modo de tela alternativa". Ou tente usar a tecla SHIFT ao rolar para obter outro comportamento de rolagem.

^[é a representação imprimível de Control-leftbracket, também conhecido como caractere de escape.Infocmprevela que ^[OBé a sequência de escape xterm para a tecla de seta para baixo ( ^[OAé a sequência de seta para cima). O Terminal emula o xterm e traduz a rolagem do mouse em sequências de teclas de seta.

Encontrei algumas discussões anteriores sobre o uso do mouse no Terminal:

Mas trata-se de versões anteriores do OSX e parece que o Terminal mudou nessa área ao longo do tempo.Este artigofala sobre como funciona em Yosemite, mas faltam alguns detalhes técnicos. O resto foi o que descobri brincando com o Terminal em Yosemite.

O terminal possui dois modos para lidar com a rolagem do mouse:

  1. Em um modo, a rolagem faz com que o terminal role a janela de visualização, para que você possa ver o buffer de rolagem do terminal (as linhas que rolaram para fora da parte superior da tela). Você obtém uma barra de rolagem OSX ao rolar o terminal.
  2. No outro modo, a rolagem faz com que o terminal envie sequências de setas para cima e setas para baixo. Esperamos que o programa em execução no terminal seja capaz de lidar com eles.

Você pode alternar temporariamente entre os modos mantendo pressionada a tecla SHIFT enquanto rola. Por exemplo, enquanto o terminal está exibindo um prompt de comando, a rolagem rolará a janela do terminal, enquanto a rolagem Shift percorrerá o histórico de comandos do bash.

O Terminal também oferece um recurso chamadotela alternativa. Programas de tela inteira gostam vimou lesspodem mudar o terminal para uma tela alternativa para exibir seu próprio conteúdo. Ao sair desse programa, o terminal volta para a tela principal. Menciono isso porque o comportamento de rolagem do Terminal pode mudar na tela alternativa.

Normalmente, o primeiro comportamento de rolagem é o comportamento principal e você deve pressionar SHIFT para obter o segundo comportamento. Mas vá para Terminal->Preferências->Perfis->Teclado. Na parte inferior há uma caixa de seleção chamada "Rolar tela alternativa". Se essa caixa estiver marcada, o comportamento de rolagem será revertido na tela alternativa. Quando marcado, o segundo comportamento de rolagem se torna o padrão para a tela alternativa e você deve pressionar SHIFT para obter o primeiro comportamento.

Por exemplo, na linha de comando, rolar o mouse permite ver o buffer de rolagem do terminal. Mas ao começar vima editar um arquivo, ele muda para a tela alternativa e, de repente, ao rolar o mouse, move o cursor. Qual é o que você quer dentro do vim.

Chegando ao seu problema, parece que seu terminal está exibindo a tela alternativa. Há uma opção de menu para alternar (Exibir->Mostrar/Ocultar tela alternativa). Ou algo que você está executando é colocar o terminal no modo de tela alternativa. Talvez você esteja usando screenou tmuxalgo parecido? Como solução alternativa, você pode tentar usar a tecla SHIFT para obter o comportamento de rolagem desejado. Ou você pode desmarcar essa caixa de seleção.

Responder2

Mudei minha emulação de terminal para vt100 de xterm-256color. Eu fiz isso em Preferências => Perfil => Avançado "Declarar Terminal como:" suspenso.

informação relacionada