Rechercher toutes les versions d'un fichier dans l'arborescence d'annulation

11

Existe-t-il un moyen plus facile de trouver un changement particulier dans l'arborescence d'annulation de Vim que de simplement regarder les anciennes versions aléatoires du fichier une par une (en utilisant les commandes VIM vanilla, Gundo ou un autre plugin)?

Idéalement, j'aimerais entrer un modèle de recherche à mettre en correspondance avec toutes les différences affichées dans le volet d'aperçu par Gundo, puis demander à Gundo de me montrer quelles versions ont des différences qui correspondent à cette recherche.

Cette question demande quelque chose de presque identique, mais le demandeur a accepté une réponse qui recommande simplement Gundo, qui, aussi merveilleux soit-il, ne semble pas faire ce que je demande.

J'ai présenté cela comme une nouvelle fonctionnalité pour Gundo , mais je n'ai reçu aucune réponse.

EDIT: Il y a une demande ouverte pour cette fonctionnalité pour undotree.

REMARQUE: cette question a été "migrée manuellement" à partir du superutilisateur .

Kyle Strand
la source
Remarque: plugin-gundoserait une bonne balise pour cette question, mais malheureusement cette balise n'existe pas encore, et je n'ai pas de représentant.
Kyle Strand
1
Il y a aussi undotree . Je ne sais pas en quoi c'est différent de gundo, ou s'il prend en charge la fonctionnalité que vous voulez, mais vous pouvez le vérifier.
Martin Tournoij
2
Bosse! Si vous cochez le problème Gundo, quelqu'un a publié une fourchette qui fournit une fonction de recherche.
joeytwiddle
@joeytwiddle J'ai vu ça! Je ne l'ai pas encore vérifié, cependant.
Kyle Strand

Réponses:

6

Dans certains cas, cela peut suffire:

:changes

Malheureusement, il ne montre pas un résumé complet de votre historique d'édition. Il semble afficher uniquement la ligne de texte sur laquelle vous avez atterri après chaque modification.

C'est suffisant pour afficher toutes les insertions ou modifications sur une seule ligne, mais uniquement la dernière ligne d'une insertion sur plusieurs lignes et aucun texte supprimé.

Il ne peut être recherché que visuellement, pas automatiquement, bien que vous puissiez saisir cette commande , puis faire:

:PipeCmd changes | less

ce qui permettrait de chercher avec /. Ou tout simplement à la grepplace de less.

Une autre façon de rechercher dans cette liste serait d'installer le plugin Unite , puis de faire:

:Unite change
joeytwiddle
la source
1
Hm. Étant donné que la recherche et le remplacement peuvent rendre le ou les mots remplacés complètement invisibles changes, ce n'est pas très utile. Ce que j'aimerais vraiment, c'est pouvoir faire :%s/foo/bar/g, puis faire une recherche fooqui (reconstruire et) me montrerait la dernière version du fichier dans lequel fooétait présent.
Kyle Strand
2

Il existe maintenant un fork gundo appelé "mundo" avec cette fonctionnalité.

Dans la fenêtre d'annulation de l'arborescence, /recherche l'historique plutôt que le texte affiché dans la fenêtre elle-même.

(Remarque: cette fonctionnalité semble avoir été adoptée à partir d'une fourchette gundo différente . Je ne sais pas à qui appartient la mise en œuvre, et je n'ai pas essayé les deux fourches pour voir laquelle fonctionne mieux.)

Kyle Strand
la source