Como desativar a rolagem da história no iTerm2

290

Instalei o novo iTerm 2. Ele me perguntou em uma barra amarela na parte superior se eu gostaria de ativar o recurso de mouse. Infelizmente, não me lembro mais da frase exata.

Por acidente eu aprovei. Agora, quando uso a roda de rolagem do mouse no iTerm, ela não rola mais para cima, mas ativa o histórico de comandos. Como se eu pressionasse o cursor para cima.

Não consegui encontrar as configurações corretas para desativá-lo novamente. Alguém sabe onde eu posso alternar esta opção?

Thx por ajudar!

Gambo
fonte
3
Eu suponho que você use o iTerm2.9, e a mensagem que você viu é "Deseja que a roda de rolagem mova o cursor em programas interativos como este?". No entanto, não consigo encontrar uma interface para alterná-lo, você ainda tem o problema?
sel-peixe
1
Sim, mas apenas quando estou conectado a um servidor via ssh. Não sei como isso pode ser conectado.
Gambo
"somente quando eu estiver logado em um servidor via ssh", você quer dizer que quando você usa o iTerm2 para operações locais, isso não acontece? Você usa um 'perfil' diferente quando 'está conectado a um servidor via ssh'?
sel-fish
Deve haver um caractere de controle do terminal enviado para ativar e desativar a tela alternativa. Eu estou pensando que é melhor a longo prazo (não específico para o iTerm2 ou vim ou menos) aprender qual é esse personagem de controle. Pode ser ESC [ ? 1 0 4 9 lou ESC [ ? 1 0 4 7 lou ESC [ ? 47 l( gnu.org/software/screen/manual/html_node/Control-Sequences.html )
dlamblin
2
isso só começou a acontecer de forma aleatória para mim .. frustrante quando você está tentando olhar através de registros
SgtPooki

Respostas:

493

Alguns terminais, incluindo o iTerm2, possuem um recurso no qual alteram o comportamento do mouse com roda quando um programa de tela cheia, como vi, ou screenou tmuxestá em execução. Isso acontece quando esses programas usam a tela alternativa , para fornecer uma função útil. Normalmente, ao usar a tela alternativa no iTerm2, o mouse roda como a barra de rolagem, rolando a tela inteira para cima / para baixo. Mas quando esse recurso está ativado, o iTerm2 envia as teclas para cima / para baixo do cursor, alterando o histórico de comandos.

Conforme sugerido em outro comentário, selecione o menu Preferências :

insira a descrição da imagem aqui

e nisso, selecione a guia Avançado . Role para baixo até a seção Mouse ,

insira a descrição da imagem aqui

e alterne a entrada para

A roda de rolagem envia teclas de seta quando no modo de tela alternativo

de Sim para Não . Você precisará reiniciar o iTerm2 para que a alteração entre em vigor. (Com o iTerm2 v3.1.5, as alterações entram em vigor sem reiniciar.)

Thomas Dickey
fonte
2
Eu testei antes de escrever o comentário - apenas alternar a opção não era suficiente.
Thomas Dickey
Pode depender da versão. No 3.0.2, alternar é definitivamente suficiente. De fato, se você estiver no modo de tela alternativo e essa configuração estiver desativada e você tentar (e falhar) rolar com o mouse e, posteriormente, pressionar a tecla de seta para cima ou para baixo, será solicitado a ativar esse recurso à direita no janela do terminal.
George
3
3.0.12 não precisa ser reiniciado para que isso entre em vigor.
dhempler 02/12
21
//, gosto desse recurso e o uso no Vim. Como saio do modo de tela alternativo em uma determinada janela do terminal? ATUALIZAÇÃO: No terminal que está no modo de tela alternativa, abra um programa de terminal que ative o modo de tela alternativa. Saia desse programa corretamente. Isso encerra temporariamente o problema. Acho que isso indica que o problema foi causado pela saída de um programa que usava o recurso Tela Alternativa de uma maneira incomum.
Nathan Basanese
6
Senhor, você me salvou da pura insanidade.
BK
60

Se você estiver bloqueado no modo histórico de rolagem, poderá escapar executando vi e sair diretamente. Você também pode escolher outro programa que use a tela alternativa e sair diretamente.

Rolar a história com a roda do mouse, em teoria, nunca acontece. Isso acontece na prática porque às vezes o modo de tela alternativo não é retornado corretamente. A resposta aceita resolve o problema desativando um recurso útil, como rolar no vi, menos, ... com a roda do mouse ou o trackpad. Você pode manter a opção nas preferências avançadas:

A roda de rolagem envia teclas de seta quando no modo de tela alternativo

definido como sim. Às vezes, você fica preso no modo de histórico de rolagem. Mas se você sabe como escapar, não há problema.

Ortomala Lokni
fonte
2
Obrigado pelo conselho! Isso me ajudou :)
jj172
1
Valeu cara! Mas entrar e sair do vi não ajudou no meu caso por algum motivo, mas funcionou depois de entrar em uma página de manual e sair pressionando q
Frax
1
Isso foi muito útil. De repente, a rolagem foi adicionada [[A^e [[B^à linha de comando, em vez de rolar a janela. Eu sabia que isso não era um comportamento normal. Antes disso, deixei o computador em nanoum shell SSH que foi desconectado quando eu desliguei meu laptop. Essa saída abrupta foi obviamente a culpada. Basta abrir uma nova guia no iTerm2 para corrigir isso.
Colin Marshall
Infelizmente, ao usar, screenvocê não pode usar este truque para sair do modo de tela alternativo. Portanto, se você estiver usando screenmuito (como eu), desabilitar completamente o recurso é um salva-vidas.
Mvreijn
Eu prefiro esta resposta, porque é muito útil para navegar em tela cheia aplicativos com o trackpad, então desabilitar o recurso nas preferências não era uma opção boa para mim :) Thx para compartilhar esta dica :)
Patrick Ferreira
42

Você provavelmente só precisa sair do console alternativo.

Experimentar: tput rmcup

otrejni
fonte
1
Boa resposta A + 💯
dps
Resposta muito melhor - isso permite rolar a história enquanto ainda é possível rolar enquanto estiver no vim. Obrigado!
21819 JonLuca
10

Preferências: Avançado: Mouse: a roda de rolagem envia teclas de seta no modo alternativo

Idiota
fonte
2
Estou tendo o mesmo problema exato descrito, mas o mais recente iTerm Mouse não está nas Preferências: Avançadas. Apenas gatilhos, seleção inteligente e histórico semântico. Alguém conhece outra maneira de consertar isso?
mikeLspohn
9

Com o iTerm2, você também pode pressionar Option enquanto usa a roda de rolagem para forçar a rolagem da janela, caso deseje que a roda continue funcionando no vim.

Kyle Smith
fonte
isso funciona, mas como eu volto aos detalhes, quando não precisei segurar a tecla de opção
meso_2600
2

O comportamento que você está vendo é o esperado (e correto) quando está na tela alternativa. O único problema que você tem é que caiu no bash, ou o que for, na tela alternativa, possivelmente ao perder uma conexão ou de um vim morto ou menos. Por exemplo, você less +F /var/log/somethingentrou e foi desconectado.

Você vê que alguém já escreveu que o tput rmcupcomando será encerrado na tela principal.

Eu também fui em frente e procurei alguns caracteres de controle do terminal. Pode ser qualquer um de: ESC [ ? 1 0 4 9 lou ESC [ ? 1 0 4 7 lou ESC [ ? 47 l(gnu.org/software/screen/manual/html_node/Control-Sequences.html) com uma preferência à primeira.

Geralmente sou bem-sucedido no iTerm2, echo -e '\e[?1049l'pois não acho rmcupmais fácil lembrar, restaure a memória do console ?.

dlamblin
fonte
1

Eu estava tendo o mesmo problema e nenhuma das soluções que li e tentei funcionou. O que corrigiu meu problema foi desativar a Entrada Segura do Teclado e agora, quando uso o mouse para rolar no ssh e no modo terminal no macOS 10.13, funciona como eu esperava!

Stan
fonte