Le comportement d'annulation par défaut dans Evil est trop grossier car il considère tout ce qui se passe entre le passage en mode d'insertion et le laisser comme une seule opération d'édition. Lorsque vous entrez un paragraphe entier de texte lors d'une insertion, puis exécutez l'annulation, le paragraphe entier est supprimé. Contrairement à cela, Vim démarre une nouvelle unité d'annulation chaque fois que vous déplacez le curseur en mode insertion par d'autres moyens que la saisie de texte.
Evil a une variable de personnalisation qui peut être utilisée pour obtenir un historique d'annulation plus précis:
(setq evil-want-fine-undo t)
Avec ce paramètre, Evil démarre une nouvelle unité d'annulation lorsque le curseur est déplacé en mode insertion, tout comme Vim. Cependant, ce paramètre perturbe également la façon dont l'opération de remplacement est gérée: si vous remplacez un mot à l'aide cw
, vous devez annuler deux fois pour restaurer le mot d'origine: une fois pour supprimer le nouveau mot et une fois pour réinsérer le mot d'origine. Cela n'est pas cohérent avec Vim et n'a pas beaucoup de sens car replace doit être atomique.
La question: Comment puis-je configurer Evil et undo-tree afin d'obtenir le comportement d'annulation de Vim?
la source
Réponses:
Puisque @shosti a souligné que Evil considère la déviation du comportement de Vim comme des bogues, j'ai déposé un bogue et l'un des auteurs d'Evil a ajouté une nouvelle valeur possible pour
evil-want-fine-undo
:Avec ce paramètre, vous obtenez de nouvelles unités d'annulation lorsque vous déplacez le curseur en mode insertion, mais les opérations de remplacement sont annulées en une seule étape. Pour autant que je sache, cela est cohérent avec Vim. Voir ici pour plus de détails.
la source
'fine
paramètre est obsolète.Selon la description de la variable (voir
C-h v evil-want-fine-undo
), la valeurfine
n'est plus prise en charge en raison d'un comportement incohérent.Comme j'utilise annuler pour annuler les fautes de frappe ou le paramètre mentionné a aidé mon attribution.
J'ai eu du mal à annuler les erreurs lors de la modification de la formule de l'organigramme, car vous n'avez pas à quitter le mode d'insertion si vous souhaitez passer à
*Edit Forumlas*
avecC-'
.la source