¿Cómo sangras> <sin salir del modo visual y perder tu selección actual?

16

A menudo tengo que sangrar manualmente, pero cuando entro en un modo visual, selecciono mis líneas para sangrar y presiono <o >, salgo del modo visual, lo quiera o no.

Preferiría tenerlo para mantenerme en modo visual y mantener intacta mi selección y posición del cursor.

¿Cómo puedo conseguir esto?

Akiva
fuente
1
¿Hay alguna posibilidad de que una reasignación haga el truco? Algo como :vmap < <a?
Feffe

Respuestas:

19

Tengo esto en mi vimrc:

"keep visual mode after indent
vnoremap > >gv
vnoremap < <gv

Tenga en cuenta que también puede simplemente usar .(punto) para repetir la última acción de sangría.

VanLaser
fuente
Casi perfecto, guarde que mi cursor no se mueve con la fila.
Akiva
1
@ Akiva ¿Quizás quiera agregar un ^al final de esa asignación? es decir >gv^?
Martin Tournoij
2
El cursor parece moverse (o no) dependiendo de su posición con respecto al texto sangrado. No está claro para mí dónde desea que permanezca el cursor: en el mismo número de columna o en el mismo carácter. Además, ¿sabe que aún puede mover el cursor, por ejemplo j, con,, etc. k, lmientras está en modo visual?
VanLaser
2
Honestamente, acabo de poner <Right>Y <Left>después de los comandos, y eso funcionó bien.
Akiva
9

Sé que esta no es una solución automática, pero puede lograr esto usando gvdespués de la sangría visual.

Esto entrará en modo visual con la selección previa seleccionada, y su cursor en la última línea. Ver :h gvpara más información.

Vaso41
fuente
-2

Intenté agregar la siguiente asignación a mi vimrc:

vmap < <a
vmap > >a

Parece tener resultados interesantes, ¿tal vez eso es lo que estás buscando?

Feffe
fuente