Comment sélectionner visuellement le bloc de texte que je viens de coller dans Vim?

13

J'ai généralement besoin de déplacer / copier des extraits de code entre mes fichiers source. Après avoir collé un bloc de texte, je dois généralement appliquer une opération à ce bloc, comme la réindenter avec =.

Existe-t-il un moyen de sélectionner visuellement facilement le bloc de texte que je viens de coller sans le faire manuellement?

thameera
la source

Réponses:

21

Les marques '[et ']délimitent la première et la dernière ligne du texte précédemment modifié ou retiré. Les homologues `[et `]délimitent les lignes et colonnes respectives.

En utilisant cela, vous pouvez sélectionner visuellement le dernier bloc de lignes modifié avec '[V']puis appliquer la =commande.

Cependant, puisqu'un collage laisse votre curseur sur la première ligne du contenu qui a été collé, vous pouvez également simplement spécifier un mouvement sur lequel la =commande doit être appliquée, dans ce cas à la ']marque. Ce serait ='].

jamessan
la source
Cette réponse décrit une méthode qui fonctionne pour tous les types de sélections visuelles (y compris les visuels par blocs): stackoverflow.com/questions/4312664/…
Adam Byrtek
14

Ce mappage vous permet de resélectionner le texte que vous venez de coller:

nnoremap gV `[v`]

Mais vous auriez dû utiliser [pet à la ]pplace.

Tu vois :help [p.

romainl
la source
2
+1 pour [pet]p
lisowski.r
3

Vim comprend les mappages utiles suivants:

`[

et

`]

Qui sélectionne respectivement le premier et le dernier caractère du texte précédemment modifié.

La série de touches suivante (en mode normal) sélectionnera le dernier texte collé:

`[v`]

Pour un accès plus rapide, vous pouvez configurer un mappage, par exemple :

nnoremap gp `[v`]
jachères
la source