Como você recua> <sem sair do modo visual e sem perder a seleção atual?


16

Geralmente, preciso recuar manualmente, mas quando entro em um modo visual, selecione minhas linhas para recuar e pressione <ou >, deixo o modo visual, querendo ou não.

Eu prefiro tê-lo para permanecer no modo visual e manter intacta minha seleção e posição do cursor.

Como posso conseguir isso?


1
Existe alguma chance de um remapeamento fazer o truque? Algo como :vmap < <a?
Feffe

Respostas:


19

Eu tenho isso no meu vimrc:

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

Observe que você também pode simplesmente usar .(ponto) para repetir a última ação do recuo.


Quase perfeito, salve que meu cursor não se move com a linha.
Akiva

1
@ Akiva Talvez você queira adicionar um ^no final desse mapeamento? ie >gv^?
Martin Tournoij

2
O cursor parece se mover (ou não), dependendo da sua posição em relação ao texto recuado. Não está claro para mim onde você deseja que o cursor fique: no mesmo número de coluna ou no mesmo caractere? Além disso, você sabe que ainda pode mover o cursor, por exemplo j, com k, letc. enquanto estiver no modo visual?
VanLaser

2
Honestamente, eu apenas coloquei <Right>E <Left>depois dos comandos, e isso funcionou bem.
Akiva

9

Sei que essa não é uma solução automática, mas você pode fazer isso usando gvo recuo visual.

Isso entrará no modo visual com a seleção anterior selecionada e o cursor na última linha. Veja :h gvpara mais informações.


-2

Tentei adicionar o seguinte mapeamento ao meu vimrc:

vmap < <a
vmap > >a

Parece ter resultados interessantes, talvez seja isso que você está procurando?

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.