Par exemple
Comment puis-je tirer et coller la ligne 4 uniquement sur la ligne 12 sans avoir à déplacer le curseur sur la ligne 4?
Par exemple
Comment puis-je tirer et coller la ligne 4 uniquement sur la ligne 12 sans avoir à déplacer le curseur sur la ligne 4?
Réponses:
Si le curseur est déjà sur la ligne 12, alors un simple
: 4 ans P
le fait pour moi.
x
? Quand j'essaye :4x
je reçois E140: Use ! to write partial buffer
. Merci!
:4d
Que diriez-vous de ceci: le curseur 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" (copier) pour déplacer simplement la ligne, au lieu de tirer et de mettre.
:4t.
Essaye ça:
:4,4y
P
D'autres ont déjà mentionné la méthode la plus directe pour ce faire, à savoir :4y
, mais je voudrais ajouter deux notes à ce sujet qui pourraient être utiles:
Premièrement, si vous tapez, :help range
vous apprendrez tout sur l’utilisation des plages à appliquer aux commandes de style Ex. TRÈS utile dans de nombreux cas et beaucoup plus polyvalent que l’utilisation de numéros de ligne. Par exemple, si vous souhaitez supprimer 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
: "Recherchez la ligne suivante pour commencer avec le mot Chapitre (recherche en avant de la ligne actuelle), puis avancez de 50 lignes et recherchez en arrière le mot Pete, et supprimez la première ligne dans laquelle vous la trouvez. " Sauf que cela ne déplace pas réellement le curseur, il fait juste ce que vous lui dites.
(J'ai utilisé ce type de spécification de plage pour automatiser la création de documentation fastidieuse impliquant la recherche du nom de la fonction sous le curseur, puis la recherche en avant de la ligne suivante qui dit "Description" et la ramenant à un registre spécifique ... etc.).
L'autre astuce, c'est que vous devriez savoir sur le saut. Tapez :help jump-motions
pour en apprendre plus à ce sujet, mais la façon dont cela se rapporte ici est que vous pouvez sauter à la ligne 4, la tirer et ensuite la retourner avec 4Gyy''
(ou utiliser des points de contrôle au lieu d'apostrophes pour revenir à votre position de départ exacte, plutôt que la même ligne vous avez commencé à.)
Le plus court:
:1t.
copie la première ligne en dessous du courant.
Avec plages:
:1,4t.
copie les lignes 1 à 4 (incluses) en dessous du courant.
Également possible avec des numéros de ligne relatifs:
:-1t.
copie la ligne précédente sous le courant.
Dans votre exemple :4t-1
, copiez la quatrième ligne en dessous de la ligne souhaitée.
Remarque: :t
est un synonyme de la :co[py]
commande.