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:
- https://stackoverflow.com/questions/1727261/scrolling-inside-vim-in-macs-terminal
- https://discussions.apple.com/thread/2084051?tstart=0
- Terminal Mac OS X: suporte para mouse?
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:
- 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.
- 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 vim
ou less
podem 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 vim
a 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 screen
ou tmux
algo 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.