pourquoi mes macros vim cessent-elles parfois de fonctionner?


5

Cela m’arrive parfois, et je n’ai pas pu comprendre pourquoi. Disons que je commence à enregistrer dans vim (appuyez sur q), puis je termine et utilise les macros plusieurs fois. Ensuite, je fais autre chose, comme continuer à éditer le fichier. Ensuite, je souhaite utiliser les macros à nouveau, mais cette fois, il se passe autre chose, par exemple, le curseur recule d'un mot.

Cela m'est arrivé quelques fois. Par exemple, aujourd’hui, je lance une macro (q 2), puis je l’utilise plusieurs fois (@ 2). Ensuite, je tape du texte et essaie de réutiliser les macros (@ 2), mais cette fois, le curseur est déplacé d’un mot vers l’arrière alors que les macros étaient censées formater du texte au format HTML.

Chaque fois que cela m'arrive, j'essaie de le reproduire. Je crée des macros factices, puis je refais la même chose, mais je n'ai jamais été en mesure de le reproduire à volonté. Les macros ne fonctionnent que lorsque j'essaie de reproduire ce problème.

Je n'ai pas fermé ou autrement suspendu vim dans aucun des cas où cela s'est produit.

Je sais que cette question risque d’être difficile à répondre avec les informations fournies, mais j’espère que cela est déjà arrivé à certains d’entre vous et que vous avez pu comprendre pourquoi cela se produit. Je suis presque sûr que c'est juste quelque chose que je ne connais pas sur vim.

Réponses:


9

Les registres numérotés sont utilisés en interne par Vim pour des commandes telles que you d.

Vous ne devriez pas les utiliser pour enregistrer vos macros car elles sont écrasées à chaque suppression ou suppression.

Utilisez des registres aà z, que Vim ne touche pas à la place.


Cela semble assez logique. Je suis sûr que ce qui se passe correspond exactement à ce que vous décrivez. Merci mon pote.
Buzu

C'est assez intéressant. Il semble que les macros se pussent au prochain nombre. Et en fait, une vieille macros est maintenant sur @ 8, quand je l’ai initialement enregistrée sur @ 2. Comment cela fonctionne-t-il exactement?
Buzu

Chaque fois que vous you dle contenu des registres numérotés est décalé d’une unité : "0le contenu devient "1le contenu de l ’, "0etc. Alors oui, ce n'est pas vraiment une bonne idée de sauvegarder quoi que ce soit là-bas. Voir :help registerspour plus.
Romainl
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.