Que sont les registres Vim

Que Sont Les Registres Vim



Les registres Vim sont des blocs de stockage utilisés pour stocker du texte et des opérations extraits et supprimés. Ces registres sont accessibles à l'aide de leurs noms de balises, qui peuvent être un chiffre, une lettre ou un symbole.

Si vous utilisez Vim, vous devez utiliser les registres Vim. Chaque fois que vous copiez/supprimez du texte ou effectuez une opération de commande, Vim stocke ces informations dans les registres. Lorsque vous le collez, Vim récupère les données du registre et les place dans le tampon. En d’autres termes, les registres Vim agissent comme un presse-papiers pour stocker le texte et l’historique des commandes.

Vim dispose d'un total de 10 types distincts de registres, chacun remplissant un objectif distinct. Dans ce didacticiel, j'explorerai les registres Vim, leurs types et leur utilisation.







Note : Pour ce tutoriel, j'exécute des commandes sur macOS. Vim est une application multiplateforme, donc les commandes mentionnées dans ce guide s'appliqueront à toutes les versions de Vim, quel que soit le système d'exploitation.



Opérateurs de registre Vim

Les registres de Vim peuvent être utilisés à l'aide d'opérations telles que la copie, la suppression ou la modification. Chaque opération a des opérateurs spécifiques, tels que pour extraire du texte, l'opérateur y est utilisé tandis que pour supprimer du texte, l'opérateur d est utilisé. Une liste des opérateurs couramment employés est donnée ci-dessous :

aaa Tire (copie) la ligne
jj Supprime la ligne
cc Supprime la ligne et active le mode INSERT
s Supprime le caractère et démarre le mode INSERT pour le remplacer
X Supprime le caractère sous le curseur
q Macro ; stocke l'ensemble des commandes dans un registre spécifique

Pour imprimer le texte stocké, p ou P. les opérateurs sont utilisés :

p Mettez (collez) le texte après le curseur
P. Mettez le texte avant le curseur

Ces commandes comptent également. Par exemple, pour copier 10 lignes, utilisez le 10aa commande, de la même manière pour coller les 10 copies d’une ligne tirée, utilisez 22h .

Inscription aux registres

Pour lister tous les registres, utilisez le :registre ou :reg commande, et pour lister le registre spécifique, utilisez la commande :reg « , où est le nom du registre (par exemple, 0-9, a-z).

De la même manière, pour lister le contenu de plusieurs registres, utilisez le :reg ' ' ' commande.

Dans la liste des registres, vous verrez trois colonnes, Nom, type et contenu . Ici, le Type signifie le type de contenu, pas le type de registre. Trois les types du contenu peut être modifié avec des registres.

  • je : Par ligne
  • c : Au niveau du caractère
  • b : Par bloc

Par exemple, si le contenu est copié en utilisant une opération par ligne (aa) alors le type de contenu sera je , si c'est du point de vue du caractère (Oui) alors le type sera c , et si le contenu est copié par bloc (ctrl+v et y) alors le type sera affiché comme b .

Travailler avec les registres Vim

Les registres Vim peuvent être utilisés pour stocker le contenu à l'aide des opérateurs yank, delete et change. Le contenu stocké est accessible à l’aide des opérateurs put.

Enregistrer du texte dans un registre
Lorsque vous appuyez sur le aaa touche pour copier une ligne, elle sera enregistrée dans le registre par défaut appelé registre sans nom (« ») . Pour stocker la ligne copiée dans un registre spécifique, le devis (') suivi du nom du registre et de l'opérateur sont utilisés.

'

Par exemple, pour copier une ligne dans un nom de registre Avec utiliser ' zyy . De même, si vous avez sélectionné plusieurs lignes en mode VISUEL, utilisez « zy pour stocker les lignes dans le registre z.

Accéder au registre
Pour accéder au registre Vim, la citation (') Le symbole est utilisé avec le nom du registre et p/p opérateur.

'p

Par exemple, si le nom du registre est z et pour accéder au contenu de ce registre, utilisez « zp en mode NORMAL. Cependant, pour effectuer la même opération en mode INSERT, utilisez ctrl+rz .

«  Mode normal Pour stocker le contenu, utilisez le devis (') , enregistrer le nom (a-z) , et l'opérateur (y, aa, j, c ou cc)
« p Mode normal Pour coller le contenu d'un registre utilisez quote (') , enregistrer le nom (a-z) et p/p opérateur
ctrl+r Mode INSERTION Pour coller le contenu d'un registre, utilisez ctrl+r et enregistrer le nom (a-z)

Vous avez l'idée de base des registres Vim. Maintenant, je vais opter pour une discussion approfondie de chaque type de registre et de son utilisation.

Types de registres Vim

Dans Vim, il existe 10 types de registres, conçus à des fins spécifiques.

  1. Registre sans nom (« »)
  2. Registres numérotés (0-9)
  3. Petit registre de suppression («-)
  4. Registres nommés (a-z ou A-Z)
  5. Registres en lecture seule (« :, « ., « %)
  6. Registre de fichiers alternatif (« #)
  7. Registre d'expression ('=)
  8. Registres de sélection et de suppression (« *, « +, +~)
  9. Registre des trous noirs (« _)
  10. Registre du dernier modèle de recherche (« /)

1. Registre anonyme (« »)

C'est le registre par défaut de Vim pour stocker le texte extrait ou supprimé en utilisant y, aa, j, jj, s, ou X commandes.

Le :reg '' La commande peut être utilisée pour répertorier le contenu stocké dans le registre sans nom.

Pour coller le contenu du registre sans nom, utilisez la commande put (p ou P) commande. Par défaut, le p La commande place les magasins de contenu dans le registre sans nom. Alternativement, les données stockées dans le registre sans nom peuvent également être collées à l'aide de la commande « » p.

Dans l'exemple suivant, j'ai copié une ligne en utilisant aaa commande puis mettez-la 5 fois en utilisant le compte 5 avec p (5p).

2. Registres numérotés (0-9)

Les registres numérotés sont utilisés pour stocker le dernier texte extrait ou supprimé.

Le registre 0 est différent des registres 1-9 . Le registre 0 stockera toujours le dernier texte extrait. Par exemple, si je tire une ligne en utilisant aaa commande, la ligne sera stockée à la fois dans le anonyme et le 0 enregistre.

Maintenant, si je supprime une ligne en utilisant jj , la ligne supprimée sera stockée dans le registre sans nom et le registre 1 tandis que le dernier texte extrait restera dans le registre 0 . Ainsi, le dernier texte extrait est accessible à tout moment via l'inscription 0 .

Les registres 1-9 stocker le dernier texte supprimé. Par exemple, si je supprime une ligne en utilisant le jj commande, le texte supprimé sera stocké à la fois dans le registre sans nom et dans le registre 1 . Le registre 1 stockera le dernier texte supprimé. Si je supprime une autre ligne, le texte précédemment supprimé sera déplacé vers l'enregistrement 2 , et le dernier sera stocké dans le fichier sans nom et enregistré 1 . Essentiellement, les registres numérotés (1-9) stocker l'historique du texte supprimé.

Comprenons le registre numéroté avec un exemple. Le fichier texte Vim suivant comprend 10 lignes ; tirons le ligne 3 en utilisant aaa commande. Vérifions maintenant l'état des registres à l'aide de la commande :reg.

La ligne coupée est actuellement dans le anonyme et 0 enregistre. Maintenant, supprimons toutes les lignes une par une en utilisant le jj commande. Alors, dernier ligne 10 sera dans le registre sans nom et le registre 1. En même temps, les autres lignes supprimées seront stockées dans les registres 2-9 Dans l'ordre croissant.

Ces lignes sont accessibles via le p commande. Par exemple, pour mettre le texte du registre 9 utiliser « 21h . De plus, si vous souhaitez mettre la valeur du registre 9 5 fois, utilisez '95p .

3. Petit registre de suppression («-)

Ce registre stocke le texte supprimé s'il est inférieur à une ligne, en utilisant des commandes comme x, daw, diw, tamponne, et encore . De plus, si vous supprimez du texte en utilisant VISUEL mode de sélection, et s'il est inférieur à une ligne, alors il sera stocké dans le petit registre de suppression. Dans Vim, une ligne signifie une phrase complète se terminant par un point.

Par exemple, dans le fichier suivant, j'ai sélectionné 3 mots collaboration et soutien à partir de la ligne numéro 9 et je les ai supprimés à l'aide du d opérateur. Le petit registre de suppression sera utilisé pour sauvegarder cette sélection puisqu'il ne fait pas plus d'une ligne. Utilisez le :reg '- commande pour lister le contenu du petit registre de suppression.

4. Registres nommés (a-z ou A-Z)

Les registres nommés sont utilisés pour stocker du texte spécifique à l'utilisateur. Donc, si vous souhaitez stocker du texte dans un registre personnalisé, alors 26 s'inscrit à partir de un à Avec peut être utilisé.

Par exemple, je tire une ligne dans le fichier suivant en utilisant «  zyy , le texte sera stocké dans le Avec inscrivez-vous comme indiqué dans l’image suivante.

Les registres nommés en minuscules et en majuscules ont des objectifs différents. Par exemple, si le texte est enregistré dans le registre minuscule, afin de remplacer le texte de ce registre, le registre minuscule sera utilisé. Cependant, pour ajouter le texte au registre minuscule, le registre majuscule portant le même nom sera utilisé.

Comprenons-le à travers un exemple. A partir du fichier suivant, j'ai stocké la ligne 8 dans le registre X en utilisant ' xyy .

Pour ajouter du texte après cette ligne, je vais d'abord sélectionner quelques mots en mode VISUEL. Pour ajouter le texte sélectionné, j'utiliserai le « Xy commande.

Pour remplacer le texte, j'utiliserai à nouveau le ' xyy .

5. Registres en lecture seule (., %, 🙂

Vim dispose de 3 registres en lecture seule qui stockent les éléments insérés. texte, nom du fichier, et dernière exécution commande.

. Stocke le dernier texte inséré
% Stocke le nom du fichier
: Stocke la dernière commande exécutée

Ces registres, comme leur nom suggéré, ne peuvent pas être modifiés, mais sont facilement accessibles.

Pour mettre le dernier texte inséré, utilisez le « .p commande.

Pour imprimer le nom du fichier, utilisez le « %p commande.

Pour imprimer la dernière commande, utilisez le « :p.

Le @ : La commande peut être utilisée pour répéter la commande précédente dans Vim. Dans l'exemple suivant, j'ai supprimé les 3 premières lignes, en appuyant sur @ : , 3 lignes supplémentaires sont supprimées, répétant ainsi la commande précédente.

6. Registre tampon alternatif (« #)

Le tampon alternatif est un fichier ouvert dans le tampon actuel. Le registre « # stocke le nom du fichier mis en mémoire tampon dans le tampon actuel. Ouvrons un autre fichier dans le même tampon en utilisant le :e ~/.vimrc commande, notez que le nom du fichier actuel est fichier.txt .

Pour fermer le tampon ouvert, utilisez le :bsupprimer ou :bwipeout commande. Maintenant, il est possible de voir le nom de fichier alternatif enregistré dans le '# registre.

7. Registre d'expression («=)

Le registre d'expression est un registre unique qui n'est pas utilisé pour stocker du texte, mais pour stocker l'expression. Par exemple, si vous avez quelques nombres dans le fichier, pour additionner ces nombres, des expressions Vim seront utilisées.

Ce registre est accessible via '= en mode NORMAL, et ctrl+r = en mode INSERTION.

Par exemple, pour trouver la différence entre deux nombres, appuyez sur « = », et le signe égal apparaîtra dans la barre d'état ; tapez maintenant les deux nombres avec le signe moins (-) et appuyez sur la touche Entrer clé. Maintenant, pour imprimer la différence, appuyez sur p ou utilisez le :mettre commande.

Pour accéder à la valeur du registre d'expression, utilisez le :reg '= commande.

De même, pour obtenir la valeur absolue de deux nombres, utilisez la =abs(valeur1-valeur2) expression.

De la même manière, pour stocker la sortie de la commande système, ce registre (d'expression) peut être utilisé. Par exemple, si je veux lire le contenu du fichier, j'utiliserai =système('cat ') , en appuyant sur la touche Retour, le contenu de la sortie sera stocké. En utilisant le p ou :mettre commande, le contenu de la sortie peut être placé dans le tampon.

Il existe toute une gamme d’expressions pouvant être utilisées dans Vim. Pour en savoir plus sur les expressions Vim, utilisez :expression d'aide et :help expression-syntaxe commandes.

8. Registres de sélection et de suppression (« *, « +, « ~)

Vim a deux registres de sélection «* (quotestar) et «+ (quoteplus) qui sont utilisés pour stocker le texte de l'interface graphique. Ces registres sont utilisés pour copier du texte à partir de programmes externes tels que des navigateurs ou tout autre traitement de texte.

Par exemple, si vous copiez une sélection de texte depuis un navigateur, en utilisant ctrl+c ou cmd+c il sera stocké dans le «* registre. Cependant, vous ne pouvez pas utiliser p ou :mettre pour coller ce texte dans l'éditeur Vim. Utiliser « *p pour placer le texte dans l'éditeur Vim qui est copié à partir d'applications externes.

Il est important de noter que les deux « + et «* les registres sont connectés au presse-papiers, donc les deux (« *p, « +p) peut être utilisé pour coller le texte dans l'éditeur Vim. De même, pour mettre du texte depuis Vim, utilisez « *aaa pour extraire une ligne puis la coller dans n'importe quelle application GUI, utilisez ctrl+v ou cmd+v.

Il est essentiel de noter que si les deux registres (* & +) font la même chose, alors à quoi ça sert ? Vim a deux registres de sélection '*, '+ faire le même travail et cela est dû au système de fenêtres X11. Le X11 propose deux méthodes pour stocker le texte, l'une est sélections et l'autre est tampons de coupe . Les sélections appartiennent à l'application et sont perdues à la fermeture de l'application, tandis que les tampons de coupure conservent le texte stocké sur le serveur X. Pour ces deux types de stockage, les registres « * et « + » sont utilisés. Pour en savoir plus, utilisez :aide x11-sélection commande.

Ensuite, le déposer le registre « ~ qui est utilisé pour stocker le texte de la dernière opération de glisser-déposer. Par exemple, si vous déposez une sélection de texte depuis une application externe, elle sera stockée dans le registre de dépôt.

Si vous trouvez difficile le collage à partir de l'application externe à l'aide de trois touches différentes, vous pouvez alors mapper la sélection à stocker dans le registre sans nom.
Ouvrez le vimrc fichier, ensemble de lieux presse-papiers = sans nom dedans et enregistrez le fichier. Désormais, chaque fois que vous copiez depuis une application externe, vous pouvez facilement le coller à l'aide du :mettre commande ou touche p.

Note : Le registre drop (~) ne sera disponible que si le Vim est compilé avec +dnd. Actuellement, il n’est disponible que pour l’interface graphique GTK.

9. Registre des trous noirs (« _)

Si vous effectuez une opération de copie ou de suppression dans l'éditeur Vim, il stocke par défaut le texte dans les registres. Si vous souhaitez supprimer le texte sans le stocker dans un registre, utilisez le registre des trous noirs. Ce registre ne modifiera pas le registre sans nom (« ») lors de la suppression de texte.

Par exemple, si je souhaite supprimer toutes les lignes sans les stocker dans le registre sans nom, je sélectionnerai d'abord toutes les lignes en utilisant ggVG puis appuyez sur '_d touches pour supprimer toutes les lignes. De même, pour supprimer une seule ligne vers un trou noir, utilisez '_jj .

10. Registre du dernier modèle de recherche (« /)

Comme son nom l'indique, ce registre enregistre le dernier modèle de recherche en utilisant le / ou ? les opérateurs. Par exemple, si vous recherchez /Linux , puis en utilisant '/p collera le mot Linux.

Vim utilise ce registre pour la navigation avec le n et N clés après la recherche.

C'est un registre inscriptible, son contenu peut être modifié à l'aide du :let. Par exemple, pour enregistrer Linux dans ce registre, utilisez :let @/=’Linux’.

Registres et macros

Dans Vim, les macros sont également enregistrées dans les registres nommés (a-z). Si vous ne connaissez pas les macros, les macros sont des commandes de définition stockées dans un registre. Cet ensemble de commandes peut être exécuté en utilisant simplement le signe @ suivi du nom du registre de macro. Essentiellement, les macros éliminent le besoin de taper plusieurs commandes à plusieurs reprises.

Par exemple, pour stocker une macro dans un registre m , J'utiliserai qmq . Je veux déménager au 5 lignes vers le bas en utilisant 5j et supprimez la ligne en utilisant jj . Utiliser, qm pour démarrer l'enregistrement de la macro, puis appuyez sur 5j et jj . Maintenant, pour quitter l'enregistrement de la macro, appuyez sur q . Pour vérifier si la macro est stockée ou non utilisée, :reg 'm ou :reg m.

Pour exécuter ces commandes avec un registre de macro, utilisez le :@m commande.

Effacer un registre

Il n’existe pas d’approche simple pour effacer un registre, car la plupart des registres n’ont pas besoin d’être effacés car ils seront éventuellement écrasés. Cependant, il existe quelques techniques pour effacer une valeur de registre dans l'éditeur Vim.

1. Enregistrez une macro vide pour effacer un registre. Par exemple, pour effacer le registre m, utilisez qmq .

2. Définissez le texte vide à l'aide du laisser . Par exemple, pour effacer le registre m, utilisez :let @m='.

3. Utilisez le setreg() fonction avec une chaîne vide comme argument. Par exemple, pour effacer le registre, utilisez :appelez setreg('m', ').

Conclusion

Il existe 10 registres différents avec des fonctionnalités différentes, ce qui rend presque impossible la mémorisation. Si vous êtes débutant, je vous recommande de ne garder à l'esprit que trois registres, registre sans nom (« ») , registres numérotés (0-9) , et registres nommés (a-z) .

Pour stocker du texte dans un registre, utilisez une citation (') signer avec le nom du registre suivi d'une commande d'opérateur (o, d, c) . Pour coller le texte d'un registre, utilisez les commandes p ou P précédées d'un guillemet (') et enregistrer le nom.

Vous devez en avoir entendu parler, si vous effectuez une tâche plus de deux fois, alors automatisez-la. Les registres Vim peuvent être extrêmement utiles pour automatiser les tâches et finalement améliorer l'expérience. Pour en savoir plus sur les registres Vim, utilisez le :aide s'inscrit commande.