Comment puis-je insérer plusieurs lignes dans un registre?

44

Je souhaite extraire plusieurs lignes d'un même registre dans vim, afin de coller facilement différents modèles de texte dans un document.

Par exemple, "iyy n'utilise que la ligne actuelle. Si j'essaie de sélectionner plusieurs lignes en mode visuel, elles ne sont pas écrites dans le registre.

Aucune suggestion?

Ryz
la source
"Si j'essaie de sélectionner plusieurs lignes en mode visuel, cela ne sera pas écrit dans le registre." <- vraiment? Travaille pour moi ...
Billy ONeal
et pour moi aussi ...
ulidtko
ah ok, j'ai essayé avec "iyv, idiot moi. devrait être Vjjj" iy comme ulidtko mentionné.
Ryz

Réponses:

59

Utilisez 3Ypour insérer 3 lignes dans le registre par défaut; "i3Ypour avoir tiré dans le registre i.

De plus, mon moyen préféré n'est pas de compter les lignes que je veux tirer, mais de les sélectionner en mode visuel via Vdes commandes en mouvement, puis yd'appuyer sur pour le tirer ou "_ysur dans un registre.

De plus, je viens d’essayer de sélectionner plusieurs lignes en mode Visual Line et d’enfoncer dans le registre non défini par défaut, par exemple Vjjj"oy- et cela fonctionne.

Ulidtko
la source
1
+1 - mais Vle mode ligne vvisuelle est le mode visuel.
Billy ONeal
d'accord, d'accord, d'accord. Mode ligne visuelle. %)
ulidtko
1
volontiers accepté, moyen le plus rapide pour moi encore.
Ryz
24

À partir de n’importe où dans le fichier, vous pouvez utiliser les éléments suivants.

:2,5y a

Yank lines 2 - 5. INTO INSCRIVEZ un

:7pu a

Coller enregistrer un sous ligne 7.

Alock27
la source
1
La question posée était: «Comment puis-je insérer plusieurs lignes dans un registre ?» Veuillez montrer comment ces commandes fonctionnent avec les registres.
Scott
J'espère que mon édition répond à votre demande.
Alock27
Non désolé. La question mentionnait explicitement "registre" à plusieurs reprises, "coller facilement différents modèles de texte" et donnait un exemple utilisant un registre autre que celui par défaut.
Scott
3
@ Scott Mes excuses. Pourquoi n'as-tu pas simplement dit: "Mec, vérifie ta méthode avec: reg. Tu verras que ça ne marche pas." Et j'aurais tous été comme, "Whoa, mon mauvais".
Alock27
1
Je cherchais un moyen d'extraire le fichier who dans le registre + pour le copier dans le presse-papiers du système. :% y + a fait le tour, merci.
AlexMA
10

Utilisez mpour marquer le début, avec un nom de tampon (pour que vous puissiez taper mx). Déplacez le curseur jusqu'à l'endroit où vous souhaitez arrêter la copie et tapez y'x(ou d'xsi vous effectuez un copier- coller). Ensuite, déplacez le sur l'endroit où vous souhaitez coller et tapez p.

La feuille de triche de la commande Vim

Fusil
la source
Êtes-vous sûr de ne pas dire vnon m?
Billy ONeal
@BillyONeal 'v' lance le mode visuel et vous permet de faire la même chose, 'm' est utilisé pour "marquer" une région.
Nifle
6

Vous préfixez la commande avec un numéro pour obtenir le nombre de lignes sur lesquelles opérer. Vous pouvez également utiliser un 'objet texte' (comme ']' pour bloc et ')' pour paragraphe) - cela fonctionnerait sur plusieurs lignes de manière contextuelle - la valeur par défaut est souvent une seule ligne. Par exemple, vous "r5yypouvez insérer cinq lignes commençant par le curseur dans le registre «r». (Vous pouvez aussi taper :.,+4y rpour faire la même chose en mode ex.) Vous pouvez également combiner des nombres avec des objets texte. "r10y).

Arcege
la source