1065 votes

Comment utiliser vim enregistre ?

Je ne connais que d’une instance à l’aide de registres est via Ctrl R * par lequel j’ai coller du texte depuis un presse-papiers.

Quelles sont les autres utilisations des registres ? Comment les utiliser ?

Tout ce que vous savez sur VI registres (concentrons-nous sur vi 7.2)--partager avec nous.

1371voto

FModa3 Points 4963

Les registres dans Vim vous permettent d'exécuter les actions ou les commandes de texte stocké à l'intérieur d'eux. Pour accéder à un registre, vous tapez "a avant une commande, où a est le nom d'un registre. Si vous souhaitez copier la ligne courante dans le registre k, vous pouvez taper

"kyy

Ou vous pouvez ajouter à un registre à l'aide d'une lettre majuscule

"Kyy

Vous pouvez ensuite parcourir le document et de le coller ailleurs à l'aide de

"kp

Pour accéder à tous actuellement défini registres de type

:reg

872voto

nelstrom Points 5996

J'ai été heureux quand j'ai découvert l' 0 s'inscrire. Si vous tirez-vous de texte sans l'affecter à un registre particulier, il sera affecté à l' 0 s'inscrire, ainsi que d'être enregistré dans la valeur par défaut " s'inscrire. La différence entre le 0 et " de registres est qu' 0 n'est rempli avec arrachement du texte, tandis que le défaut de registre est aussi peuplée de texte supprimés à l'aide d/d/x/X/c/C/s/S commandes.

Je trouve cela utile quand je veux copier du texte, de supprimer quelque chose et de le remplacer par le texte copié. Les étapes suivantes illustrent un exemple:

  • Copie le texte que vous souhaitez copier avec y[motion] - ce texte est enregistré dans " et 0 registres
  • Supprimer le texte que vous souhaitez remplacer par d[motion] - ce texte est enregistré dans " s'inscrire
  • Collez le texte tiré d'un coup sec avec "0p

Sur la dernière étape, si vous étiez à coller à partir de la valeur par défaut de registre (avec p), elle serait d'utiliser le texte que vous aviez supprimé (probablement pas ce que vous avez prévu).

Pour plus d'infos, voir :help registers.

363voto

Francisco Points 100

Une de mes parties préférées de registres est en les utilisant comme des macros!

Disons que vous avez affaire à un délimité par des tabulations fichier de valeur en tant que telle:

    ID  Df  %Dev    Lambda
    1   0   0.000000    0.313682
    2   1   0.023113    0.304332
    3   1   0.044869    0.295261
    4   1   0.065347    0.286460
    5   1   0.084623    0.277922
    6   1   0.102767    0.269638
    7   1   0.119845    0.261601

Maintenant, vous décidez que vous avez besoin pour ajouter un signe de pourcentage à la fin de l' %Dev champ. Nous allons faire une macro simple dans l' (choisie arbitrairement) m registre comme suit:

  1. qm

  2. EE: Aller à la fin de la 3e colonne.

  3. a: Le mode insertion pour ajouter à la fin de cette colonne.

  4. %: Tapez le signe " % " nous voulons ajouter.

  5. <ESC>: Revenir en mode commande.

  6. j0: Aller au début de la ligne suivante.

  7. q: Arrêter l'enregistrement de la macro

Nous pouvons maintenant tout type @m pour exécuter cette macro sur la ligne actuelle. En outre, nous pouvons type 100@m à le faire 100 fois! La vie est assez bonne.

À ce stade, vous devriez être en disant:"MAIS ATTENDEZ, CE que LE DIABLE est-CE que AVEZ À FAIRE AVEC des REGISTRES?"

Excellent point. Penchons-nous sur ce qui est dans le contenu de l' m registre en tapant "mp. Nous obtenons alors le suivant:

    EEa%<ESC>j0

Au début, cela ressemble à vous ouvrir accidentellement un fichier binaire dans le bloc-notes, mais sur le deuxième coup d'œil, c'est la séquence exacte des caractères dans notre macro!

Vous êtes une personne curieuse, donc, nous allons faire quelque chose d'intéressant et de modifier cette ligne de texte à insérer un "!" plutôt ennuyeux "%".

    EEa!<ESC>j0

Ensuite, nous allons tirer en l' n registre en tapant B"nyE. Alors, juste pour le plaisir, nous allons exécuter l' n macro sur une ligne de nos données à l'aide d' @n....

OMG, IL A AJOUTÉ UN "!"

Essentiellement, l'exécution d'une macro est comme appuyer sur la séquence exacte des touches dans cette macro s'inscrire. Si ce n'est pas un cool registre astuce, je mange mon chapeau.

114voto

Anthony Roy Points 605

D'autres registres:

"* ou "+ - le contenu du presse-papiers du système

"/ - dernière commande de recherche

": - dernière commande.

Remarque avec vim macros, vous pouvez les modifier, car ils sont tout simplement une liste de combinaisons de touches utilisées lors de l'enregistrement de la macro. De sorte que vous pouvez écrire dans un fichier texte de la macro (à l'aide d' "ap d'écrire une macro d'un) et de les modifier, et de les charger dans un registre en "ay$. Belle façon de stocker les macros utiles.

81voto

mrucci Points 1917

Le trou noir s’inscrireest la des registres.

Je l’utilise dans mon vimrc pour permettre la suppression des caractères simples sans mettre à jour le registre par défaut :

et coller en mode visuel sans mettre à jour le registre par défaut :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X