¿Cómo puedo desactivar "desplazar el historial" en iTerm2

290

He instalado el nuevo iTerm 2. Me preguntó en una barra amarilla en la parte superior si me gustaría habilitar una función de mouse. Lamentablemente ya no recuerdo la oración exacta.

Por accidente lo aprobé. Ahora, cuando uso la rueda de desplazamiento del mouse en iTerm, ya no se desplaza hacia arriba, sino que activa el historial de comandos. Como si presionara el cursor hacia arriba.

No pude encontrar la configuración correcta para desactivarlo nuevamente. ¿Alguien sabe dónde puedo alternar esta opción?

Gracias por ayudar!

Gambo
fuente
3
Supongo que usa iTerm2.9, y el mensaje que vio es "¿Desea que la rueda de desplazamiento mueva el cursor en programas interactivos como este?". Sin embargo, no puedo encontrar una interfaz para alternar, ¿todavía tiene ¿el problema?
sel-fish
1
Sí, pero solo cuando estoy conectado a un servidor a través de ssh. No sé cómo se podría conectar esto.
Gambo
"solo cuando estoy conectado a un servidor a través de ssh", ¿quiere decir que cuando usa iTerm2 para operaciones locales, eso no sucederá? ¿Utiliza un 'perfil' diferente cuando 'inició sesión en un servidor a través de ssh'?
sel-fish
Debe haber un carácter de control de terminal enviado para activar y desactivar la pantalla alternativa. Estoy pensando que es mejor a largo plazo (no específico para iTerm2 o vim o menos) para aprender cuál es ese carácter de control. Podría ser ESC [ ? 1 0 4 9 lo ESC [ ? 1 0 4 7 lo ESC [ ? 47 l( gnu.org/software/screen/manual/html_node/Control-Sequences.html )
dlamblin
2
esto acaba de comenzar a suceder al azar para mí .. frustrante cuando usted está tratando de mirar a través de los registros
SgtPooki

Respuestas:

493

Unos terminales, incluyendo iTerm2, tienen una característica en la que cambian el comportamiento de la rueda del ratón cuando un programa de pantalla completa como vi, o screen, o tmuxse está ejecutando. Esto sucede cuando esos programas usan la pantalla alternativa , para proporcionar una función útil. Normalmente, cuando se usa la pantalla alternativa en iTerm2, la rueda del mouse actúa como la barra de desplazamiento, desplazando la pantalla completa hacia arriba / abajo. Pero cuando esta función está habilitada, iTerm2 envía teclas de cursor arriba / abajo, haciendo que su historial de comandos cambie.

Como se sugiere en otro comentario, seleccione el menú Preferencias :

ingrese la descripción de la imagen aquí

y en eso, seleccione la pestaña Avanzado . Desplácese hacia abajo a la sección Mouse ,

ingrese la descripción de la imagen aquí

y alternar la entrada para

La rueda de desplazamiento envía teclas de flecha cuando está en modo de pantalla alternativa

de a no . Deberá reiniciar iTerm2 para que el cambio surta efecto. (Con iTerm2 v3.1.5 los cambios surten efecto sin reiniciar).

Thomas Dickey
fuente
2
Lo probé antes de escribir el comentario, solo alternar la opción no era suficiente.
Thomas Dickey
Puede depender de la versión. En 3.0.2, alternar es definitivamente suficiente. De hecho, si está en modo de pantalla alternativa y esta configuración está desactivada e intenta (y falla) desplazarse con el mouse y luego presionar la tecla de flecha hacia arriba o hacia abajo, se le indicará que active esta función en el ventana de terminal.
George
3
3.0.12 no necesita reiniciarse para que esto surta efecto.
dhempler
21
//, me gusta esta función y la uso en Vim. ¿Cómo me salgo del modo de pantalla se alternan en una ventana de terminal dado? ACTUALIZACIÓN: en el terminal que está en modo de pantalla alternativa, abra un programa de terminal que active el modo de pantalla alternativa. Salga de ese programa limpiamente. Esto termina temporalmente el problema. Creo que esto indica que el problema fue causado al salir de un programa que usó la función Pantalla alternativa de una manera inusual.
Nathan Basanese
66
Señor, me salvó de la locura pura.
BK
60

Si está atrapado en el modo de historial de desplazamiento, puede escapar ejecutando vi y salir directamente. También puede elegir otro programa que use la pantalla alternativa y salir directamente.

En teoría, el desplazamiento de la historia con la rueda del mouse nunca debería suceder. Sucede en la práctica porque a veces el modo de pantalla alternativa no se cambia correctamente. La respuesta aceptada resuelve el problema desactivando una función que es útil, es decir, desplazarse en vi, menos, ... con la rueda del mouse o el panel táctil. Puede mantener la opción desde las preferencias avanzadas:

La rueda de desplazamiento envía teclas de flecha cuando está en modo de pantalla alternativa

establecido en sí. A veces quedarás atrapado en el modo de historial de desplazamiento. Pero si sabes cómo escapar, no hay problema.

Ortomala Lokni
fuente
2
¡Gracias por el consejo! Esto me ayudó :)
jj172
1
¡Gracias hombre! Pero entrar y salir de vi no ayudó en mi caso por alguna razón, pero funcionó después de ingresar a una página de manual y salir presionando q
Frax
1
Esto fue muy útil. Desplazamiento era toda una adición repentina [[A^y [[B^de la línea de comandos en lugar de desplazarse la ventana. Sabía que este no era un comportamiento normal. Antes de eso, había dejado la computadora en nanoun shell SSH que se desconectó cuando cerré mi computadora portátil. Esa salida abrupta fue obviamente la culpable. Simplemente abriendo una nueva pestaña en iTerm2 solucionó esto.
Colin Marshall
Desafortunadamente, al usarlo screenno puedes usar este truco para salir del modo de pantalla alternativa. Entonces, si está usando screenmucho (como yo), deshabilitar la función por completo es un salvavidas.
mvreijn
Prefiero esta respuesta, porque es muy útil para navegar en aplicaciones de pantalla completa con el trackpad, por lo que deshabilitar la función en las preferencias no fue una buena opción para mí :) Gracias por compartir este consejo :)
Patrick Ferreira
42

Probablemente solo necesite salir de la consola alternativa.

Tratar: tput rmcup

otrejni
fuente
1
Gran respuesta A + 💯
dps
Respuesta mucho mejor: esto le permite desplazarse por el historial sin dejar de desplazarse mientras está en vim. ¡Gracias!
JonLuca
10

Preferencias: Avanzado: Ratón: la rueda de desplazamiento envía teclas de flecha cuando está en modo alternativo

Idiota
fuente
2
Tengo el mismo problema exacto descrito, pero en el nuevo iTerm Mouse no está en Prefences: Advanced. Solo disparadores, selección inteligente e historia semántica. Alguien sabe alguna otra forma de solucionar esto?
mikeLspohn
9

Con iTerm2 también puede mantener Opción mientras usa la rueda de desplazamiento para forzar el desplazamiento de la ventana, en caso de que desee que la rueda continúe funcionando en vim.

Kyle Smith
fuente
esto funciona, pero ¿cómo vuelvo a los detalles, cuando no tuve que mantener presionada la tecla de opción?
meso_2600
2

El comportamiento que está viendo es el comportamiento esperado (y correcto) cuando está en la pantalla alternativa. El único problema que tiene es que cayó en bash, o lo que sea, en la pantalla alternativa, posiblemente mientras pierde una conexión o desde un vim muerto o menos. Por ejemplo, estabas dentro less +F /var/log/somethingy te desconectaron.

Verá que alguien ya ha escrito que el tput rmcupcomando saldrá a la pantalla principal.

También seguí adelante y busqué algunos personajes de control de terminal. Puede ser cualquiera de: ESC [ ? 1 0 4 9 lo ESC [ ? 1 0 4 7 lo ESC [ ? 47 l(gnu.org/software/screen/manual/html_node/Control-Sequences.html) con preferencia al primero.

En general, tengo éxito en iTerm2 con el echo -e '\e[?1049l'que realmente no encuentro rmcupmás fácil de recordar, ¿restaurar la memoria de la consola?

dlamblin
fuente
1

Estaba teniendo el mismo problema y ninguna de las soluciones que leí e intenté funcionó. Lo que solucionó mi problema fue desactivar Secure Keyboard Entry y ahora, cuando uso el mouse para desplazarlo en ssh y en modo terminal en macOS 10.13, ¡funciona como yo también lo esperaba!

Stan
fuente