Comment puis-je utiliser un numéro de ligne pour copier une ligne à l'endroit où se trouve mon curseur?

20

Souvent, je suis dans une situation similaire à celle-ci:

1. <Line 1>
2. <Line 2>
3. <Line 3>
4. <Cursor is here>
5. <I want to copy line 1 here>

Une solution simple est mm:1<CR>yy`mp- c'est-à-dire faire une marque à la ligne 4, aller à la ligne 1, la copier, revenir à la marque et coller.

Existe-t-il une solution plus courte / plus fluide à cela? Je le fais assez souvent pour être heureux de faire un mappage pour cela.

Daniel Kleinstein
la source

Réponses:

23

Ressemble à un cas pour l'ex copie ( :help :coou :help :t):

:1t4

ou, en utilisant la position de votre curseur:

:1t.

Cela ne copie pas la ligne dans le registre yank, ce qui peut ou non être ce que vous voulez.

PhilippFrank
la source
Je n'utilise pas assez d'ex copie, bonne suggestion.
jecxjo
10

Vous pouvez le raccourcir en n'utilisant pas de marques et tirer directement la ligne.

:1y<CR>p

La version de commande de yank prend {range}donc sélectionnez une ligne ou un groupe de lignes.

De plus, la valeur de la plage peut être absolue ou relative. Les lignes au-dessus du curseur sont une distance négative et en dessous sont positives. Donc, tirer deux lignes au-dessus est :-2yet tirer deux lignes ci-dessous est :+2y.

jecxjo
la source