Desplace la pantalla, no el cursor, cuando use la rueda de desplazamiento

18

Estoy usando Vim en una terminal, por lo que al desplazarme con la rueda de desplazamiento se usa la sintaxis \e[Ay \e[B(donde \esimboliza \x1bo escapa).

Sin embargo, Vim interpreta esto moviendo el cursor hacia arriba o hacia abajo de una línea. El comportamiento deseado es que la pantalla se mueve hacia arriba o hacia abajo, como <C-e>y <C-y>hacer.

¿Cómo puedo decirle a Vim que mueva la pantalla cuando utilicé mi rueda de desplazamiento, mientras mantengo el cursor en la misma línea? Esto debería funcionar en todos los modos comunes (inserción, normal, selección visual).

Ya he intentado, por ejemplo, :nnoremap <esc>[A <C-e>(reemplazar <esc>con un carácter de escape literal insertado con Ctrl+V Esc), pero resultó ser inútil.

Estoy usando Vim 7.4.52 en Ubuntu 14.04 con GNOME.

Perilla de la puerta
fuente
¿Podría limitar la pregunta a un sistema operativo o entorno de ventanas?
200_success
@ 200_success Muy bien, he editado mi entorno en la pregunta.
Pomo de la puerta
Creo que esta pregunta también debería etiquetarse como 'terminal'. ¿Es no editable porque se responde?
bsmith89

Respuestas:

12

Como @Doorknob dijo en su comentario, :set mouse=asoluciona el problema.

bsmith89
fuente
1
¿Hay alguna manera de hacer esto sin configurar mouse=a? No quiero que los clics accidentales estropeen mi flujo de edición.
wchargin
el aen mouse=asignifica all(no añadir). from :help mouse: "el mouse se puede habilitar para diferentes modos ... Normalmente, se habilitaría el mouse en los cuatro modos con:: set mouse = a" al menos en mi vim cuando habilité que no se estropeó con el cambio de modo (solo habilitado el desplazamiento - y "haga clic para ir a la línea")
Fawix
2
Aunque este hilo es antiguo, para alguien que quiera set mouse=asin clics accidentales desordenar el flujo, :map <LeftMouse> <nop>sería el truco.
Sunny Pun
0

El comportamiento que quieres es lo que sucede en mi vim. No puedo encontrar una configuración que lo active / desactive. Tal vez verifique el : ayuda para desplazarse ? scrolloffpodría estar involucrado

También podría considerar usar marcas como una solución alternativa.

  1. ma (marque 'a')
  2. desplaza la pantalla como quieras
  3. `a (envíe el cursor para marcar 'a')
bsmith89
fuente
Obtengo este comportamiento incluso sin cargar mi vimrc ( vim -u NONE). Este es Vim 7.4 en Ubuntu 14.04 con GNOME.
Pomo de la puerta
@Doorknob Y obtengo la ventana en lugar del cursor moviéndose sin mi .vimrc(solo set mouse=a). :help scrollingdice que el comportamiento de desplazamiento es específico de la plataforma. Estoy usando vim en iterm2 en OSX.
bsmith89
¡Ajá! :set mouse=ame ha solucionado el problema. Edite eso en su respuesta, y lo aceptaré. ¡Gracias!
Pomo