12
votes

Yank N lignes vers le haut sans bouger

à Yank 7 lignes vers le bas sans déplacer le curseur, je peux 7yy . Est-il possible de faire la même chose vers le haut, sans utiliser de macros ou de remappage?

vim

0 commentaires

3 Réponses :


5
votes

Vous pouvez effectuer ce qui suit:

6yk6j


1 commentaires

Cela fera des lignes de 7 + 1 (ligne courante aussi.) 7 devrait être 6.



30
votes

Vous pouvez utiliser la commande : yank code> avec une plage pour accomplir cet effet.

:h :yank
:h [range]
  • . code> ou le point signifie la ligne de courant li>
  • .- 6 code> signifie la ligne de courant moins 6 li>
  • .- 6 ,. code> est la ligne de courant moins 6 à la ligne actuelle li>
  • Ceci peut être abrégé .- 6 code> à juste -6 code> nous donnant -6, .yank code> li> li>
  • La ligne de courant est également supposée à la fin de la plage, de sorte que -6, yank code> li>
  • La commande yank peut être raccourcie à juste : y code> nous donnant -6, y code> li> ul>

    Commande finale: p> xxx pré>

    Pour plus d'aide: p>

    :-6,y
    


6 commentaires

+1 Parce qu'il ne déplace pas le curseur au besoin, mais vous devriez faire -6 au lieu de -7.


@Andrea Spadaccini Vous êtes absolument correct. Stupide par une erreur. J'ai corrigé mon post.


Pour être honnête, je ne l'ai découvert que parce que j'essayais votre solution et que je lisais "8 lignes tirées", c'est un excellent conseil! :)


Juste ce que je cherchais et une excellente explication de la syntaxe.


Merci pour une réponse grandement instructive


Merci pour l'excellente réponse! J'apprécie que vous montriez les étapes nécessaires pour aller au sténographie.



6
votes

Vous pouvez simplement youiller à une motion, puis renvoyer le curseur à la position à l'aide de '[ code> ou '] code>.

la jaune pour 6 lignes, Plus le courant donne 7 au total: p> xxx pré>

puis, utilisez des marques moins connues: p> xxx pré>

SO: P>

y6ugi


0 commentaires