Comment tirer une ligne particulière sans déplacer le slider dans vim?

Par exemple

alt texte

Comment puis-je tirer et coller la ligne 4 seulement à la ligne 12 sans déplacer le slider sur la ligne 4?

alt texte

Si le slider est déjà sur la ligne 12, alors un simple

 : 4 ans
 P

le fait pour moi.

Que diriez-vous de ceci: Le slider est sur la ligne 11, vous êtes en mode "vi".

 :4co.<return> 

Vous pouvez apparemment aussi le faire avec un motif:

 :/^Yank/co.<return> 

Vous pouvez utiliser "mo" (déplacer) au lieu de "co" (copyr) pour simplement déplacer la ligne, au lieu de lancer et mettre.

Essaye ça:

 :4,4y P 

Essayer:

 :4co11 

Vous pouvez utiliser un argument de 0 pour coller à la ligne 1 . Cela fonctionnera également avec les plages:

 :m,n co k 

copyra les lignes m travers n jusqu'à la ligne k+1 . En outre, peu importe où vous êtes dans le tampon. La command move , m , fonctionne de la même façon.

Cela devrait le faire:

 :4,12y p k 

D'autres ont déjà mentionné la méthode la plus directe de le faire, qui est :4y , mais je veux append deux notes à ce sujet qui peuvent être utiles:

Un, si vous tapez :help range vous apprendrez tout sur l'utilisation des plages pour appliquer aux commands de style Ex. TRÈS utile dans de nombreux cas, et beaucoup plus polyvalent que d'utiliser des numéros de ligne. Par exemple, si vous voulez lancer la première ligne commençant par "yank" après le début du document (même si c'est sur la première ligne), utilisez :0/^yank/y . La partie la plus puissante des plages est la possibilité de les combiner, par exemple :./^Chapter/+50?Pete?d signifie "Trouve la ligne suivante pour commencer avec le mot Chapter (search en avant de la ligne courante), puis saute avancer 50 lignes, et searchr en arrière pour le mot Pete, et supprimer la première ligne que vous trouvez. " Sauf qu'il ne bouge pas réellement le slider, il fait juste ce que vous lui dites.

(J'ai utilisé ce type de spécification de gamme pour automatiser la création de documentation fiddly impliquant la search du nom de la fonction sous le slider, puis la search de la prochaine ligne qui dit "Description" et le transfert vers un registre spécifique … etc.

L'autre conseil, c'est que vous devriez savoir sur le saut. Tapez :help jump-motions pour en apprendre plus à fond, mais la façon dont il se rapporte ici est que vous pouvez sauter à la ligne 4, 4Gyy'' puis RETOUR avec 4Gyy'' (ou utilisez backticks au lieu d'apostrophes pour revenir à votre démarrage exact position, plutôt que la même ligne que vous avez commencé à.)

Le plus court:

:1t. copy la première ligne sous le courant.

Avec des gammes :1,4t. copy la ligne 1 à 4 (inclus) sous le courant.

Également possible avec les numéros de ligne relatifs:

:-1t. copy la ligne précédente sous le courant.

Dans votre exemple :4t-1 copyrait la quasortingème ligne sous la ligne voulue.