Come rientrare> <senza uscire dalla modalità visiva e perdere la selezione corrente?


16

Spesso devo rientrare manualmente, ma quando entro in una modalità visiva, seleziono le mie righe per rientrare e premo <o >, esco dalla modalità visiva, che lo voglia o no.

Preferirei che rimanga in modalità visiva e mantenga intatta la selezione e la posizione del cursore.

Come posso raggiungere questo obiettivo?


1
C'è qualche possibilità che un rimappatura faccia il trucco? Qualcosa del genere :vmap < <a?
Feffe,

Risposte:


19

Ho questo nel mio vimrc:

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

Nota che puoi anche semplicemente usare .(punto) per ripetere l'ultima azione del rientro.


Quasi perfetto, salvo che il mio cursore non si sposta con la riga.
Akiva,

1
@Akiva Forse vuoi aggiungere un ^alla fine di quella mappatura? cioè >gv^?
Martin Tournoij,

2
Il cursore sembra muoversi (o meno) a seconda della sua posizione rispetto al testo rientrato. Non è chiaro per me dove vuoi posizionare il cursore: sullo stesso numero di colonna o sullo stesso carattere? Inoltre, si sa che si può ancora muovere il cursore per esempio con j, k, lecc mentre in modalità visiva?
VanLaser,

2
Onestamente, ho appena messo <Right>E <Left>dopo i comandi, e ha funzionato bene.
Akiva,

9

So che questa non è una soluzione automatica, ma puoi farlo usando gvil rientro visivo.

Questo passerà alla modalità visiva con la selezione precedente selezionata e il cursore sull'ultima riga. Vedi :h gvper maggiori informazioni.


-2

Ho provato ad aggiungere il seguente mapping al mio vimrc:

vmap < <a
vmap > >a

Sembra avere risultati interessanti, forse è quello che stai cercando?

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.