Comment couper une ligne entière dans vim et la coller?

198

Je sais utiliser le v commande dans vim, mais j'ai besoin de quelque chose qui supprimera une ligne entière et cela devrait me permettre de coller la même ligne ailleurs.

VivekVarade123
la source

Réponses:

84

Appuyez sur Shift+ vsélectionnerait cette ligne entière et appuyez sur la dsupprimerait.

Vous pouvez également utiliser dd, ce qui ne vous oblige pas à entrer en mode visuel.

Programmeur123123
la source
38
Ou vous pouvez appuyer sur vv ou dd, qui sont équivalents sans activer le mode visuel ennuyeux.
jaked122
13
ddplus facile que shift + v->d
Kolob Canyon
1
Qu'en est-il de l'annulation ... J'essaie mes documents et je ne peux pas les annuler.
Abhishek saharn
19
Et la pâte ??
Becko
1
Normalement, je ne laisse pas de commentaires, mais le fait que ce gars n'a pas dit comment coller et a quand même obtenu la réponse acceptée a fait ma journée
Cristian E.
422

dden mode commande (après avoir appuyé sur échappement) coupera la ligne, pen mode commande collera.

Mettre à jour:

Pour un bonus, dpuis un mouvement coupera l'équivalent de ce mouvement, donc dwcoupera un mot, d<down-arrow>coupera cette ligne et la ligne ci-dessous, d50wcoupera 50 mots.

yyest la ligne de copie, et fonctionne comme dd.

D coupe du curseur à la fin de la ligne.

Si vous avez utilisé v(mode visuel), vous devriez essayer V(mode ligne visuelle) et <ctrl>v(mode bloc visuel).

DaedalusFall
la source
13
Bonne réponse. J'ajouterais Ppour coller la ligne avant le curseur en mode commande. Et <Ctrl-R>"pour coller la ligne en mode insertion.
Birei
13
Et ]ppour coller avec un retrait correct. Mais nous devons faire attention à ne pas publier l'intégralité du manuel vim ici :).
DaedalusFall
16

Il existe plusieurs façons de couper une ligne, toutes contrôlées par le d touche en mode normal. Si vous utilisez le mode visuel (la vtouche), vous pouvez simplement appuyer sur la dtouche une fois que vous avez mis en surbrillance la région que vous souhaitez couper. Accédez à l'emplacement que vous souhaitez coller et appuyez sur lep touche pour coller.

Il convient également de mentionner que vous pouvez copier / couper / coller à partir des registres. Supposons que vous ne sachiez pas quand ni où vous souhaitez coller le texte. Vous pouvez enregistrer le texte dans un maximum de 24 registres identifiés par une lettre alphabétique. Ajoutez simplement votre commande avec '(guillemet simple) et la lettre de registre (de a à z). Par exemple, vous pouvez utiliser le mode visuel ( vtouche) pour sélectionner du texte, puis taper 'adpour couper le texte et le stocker dans le registre «a». Une fois que vous accédez à l'emplacement où vous souhaitez coller le texte que vous tapez 'appour coller le contenu du registre a.

dsummersl
la source
14

Supprimer la ligne actuelle et la copier dans le presse-papiers:

d + d

Collez le contenu de votre presse-papiers :

(Maintenez) Shift+P

Kolob Canyon
la source
12

Disons que vous vouliez couper la ligne bbb et la coller sous la ligne---

Avant:

aaa
bbb
---

Après:

aaa
---
bbb
  1. Placez votre curseur sur la ligne bbb
  2. presse d +d
  3. Placez votre curseur sur la ligne ---
  4. presse p

entrez la description de l'image ici

commande personnalisée
la source
11
  1. appuyez sur «V» en mode normal pour sélectionner la ligne entière
  2. puis appuyez sur 'y' pour le copier
  3. allez à l'endroit où vous voulez le coller et appuyez sur 'p' pour coller après le curseur ou sur 'P' pour coller avant.
ojas mohril
la source
7

Le moyen le plus rapide que j'ai trouvé est le mode d'édition:

  1. Appuyez sur yypour copier la ligne.
  2. Ensuite ddpour supprimer la ligne.
  3. Ensuite, pcollez la ligne.
Vadoff
la source
4

Seulement trois étapes.

  1. En mode commande, accédez à la position de départ du texte que vous souhaitez copier et appuyez surv
  2. Accédez à la position finale du texte et appuyez surd
  3. Accédez à l'endroit que vous souhaitez coller et appuyez surp
sumedhe
la source