101 votes

Couper et coller plusieurs lignes dans vim

Je cours vim 7.3 sur un Mac 10.7.2 et j'ai des problèmes pour couper et coller plusieurs lignes.

Sur ma vieille configuration Linux (qui a été volée donc je ne connais pas les versions), je pouvais taper "dd" plusieurs fois et ensuite "p" les yankerait tous. Par exemple: tapez : "dd dd" et deux lignes seraient supprimées. Maintenant tapez "p" et les deux lignes sont collées de retour dans le tampon.

Je sais que je peux accomplir ce que je veux en tapant "2dd", et ensuite "p" - mais j'aimerais pouvoir "dd"-out les lignes sans compter le nombre de lignes à l'avance.

Des idées ?

181voto

Benoit Points 39210

Avez-vous envisagé d'utiliser le mode visuel ?

Vous pourriez simplement faire :

  • Appuyez sur V
  • Sélectionnez tout ce que vous voulez couper sans compter
  • Appuyez sur d
  • Allez à l'endroit où vous voulez coller
  • Appuyez sur p

Cela devrait aboutir à environ la moitié moins de frappes que la méthode dd puisque vous appuyez sur une touche par ligne au lieu de deux. Points bonus si vous utilisez 5j (ou similaire) pour sélectionner plusieurs lignes à la fois.

47voto

Giovanni Points 1010

Vous pourriez taper :

dd

où est le nombre de lignes que vous souhaitez couper, puis vous pourriez les coller avec :

p

Par exemple, pour couper et coller 3 lignes :

d3d
p

22voto

flazor Points 141

Pour copier et coller par numéros de ligne (faire :set number pour voir les numéros de ligne), pour les lignes x à y faire :

:x,yd

ou si votre curseur est déjà sur la ligne x, faire

:,yd

Ensuite allez à l'endroit où vous voulez coller et appuyez sur p

7voto

wxs Points 1546

Je ne suis pas sûr si c'est assez proche de ce que vous essayez de faire, mais une chose que vous pourriez faire est d'utiliser un registre spécifique et de mettre en majuscule le nom du registre. Cela indique à vim d'ajouter au registre plutôt que de le remplacer, donc si vous avez les lignes :

un
deux
trois

vous pouvez entrer

"qdd
"Qdd
"Qdd

et ensuite si vous entrez

"qp

cela collera de nouveau les lignes originales

5voto

learner Points 1

Pour copier et coller 4 lignes :

y4y (avec le curseur sur la ligne de départ que vous voulez copier)

p (avec le curseur sur la ligne que vous souhaitez coller après)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X