Coller la sélection visuelle des blocs sur ses propres lignes

12

Je ne sais pas vraiment comment décrire ce que j'aimerais faire. Fondamentalement, j'aimerais utiliser le mode bloc visuel pour sélectionner une région de texte, puis la coller "comme une collection de lignes" plutôt que comme un rectangle.

a b
c d
e f
g h

après avoir appuyé sur gg0<c-v>Gyle rectangle se a/c/e/gtrouve dans le registre yank par défaut (j'ai oublié son nom).

Si je colle ensuite le rectangle, pj'obtiens ce qui suit:

aa b
cc d
ee f
gg h

Je me demande s'il est possible de coller une sélection rectangle / bloc visuel sur un groupe de lignes, comme s'il s'agissait d'une sélection visuelle ordinaire.

a
c
e
g
a b
c d
e f
g h
Gregory Nisbet
la source
Vous pouvez définir le type de registre sur ligne avant de coller. Quelque chose comme ceci: :call setreg('+', @+, 'V'). En fonction de votre système d'exploitation et de votre paramètre clipboard, vous devrez peut-être le faire pour les registres *ou à la "place. Il est plus long à taper que la réponse ci-dessous, mais il pourrait toujours être utile dans des contextes plus complexes.
lcd047

Réponses:

15

Essaye ça:

:put! "
  • :put: insérer le contenu du registre spécifié
  • !: insérer avant la ligne courante (la valeur par défaut est après)
  • ": le registre sans nom (vérifier les :help registersdétails)

Vous pouvez également le faire à partir du mode d'insertion: Ctrl- r+"

mMontu
la source