Buscar todas las versiones de un archivo en el árbol de deshacer

11

¿Hay una manera más fácil de encontrar un cambio particular en el árbol de deshacer de Vim que simplemente mirando versiones antiguas aleatorias del archivo de una en una (ya sea usando comandos VIM de vainilla, Gundo u otro complemento)?

Idealmente, me gustaría ingresar un patrón de búsqueda para que coincida con todos los diferenciales que Gundo muestra en el panel de vista previa, y luego hacer que Gundo me muestre qué versiones tienen diferencias que coincidan con esa búsqueda.

Esta pregunta plantea algo casi idéntico, pero el autor de la pregunta ha aceptado una respuesta que simplemente recomienda a Gundo, que, aunque es maravilloso, no parece hacer lo que le pido.

He presentado esto como una nueva característica para Gundo , pero no recibí respuesta.

EDITAR: hay una solicitud abierta para esta función para unotree.

NOTA: Esta pregunta se ha "migrado manualmente" desde el superusuario .

Kyle Strand
fuente
Nota: plugin-gundosería una buena etiqueta para esta pregunta, pero desafortunadamente esa etiqueta aún no existe y no tengo representante.
Kyle Strand
1
También hay unotree . No sé exactamente cómo es diferente de gundo, o si es compatible con la función que desea, pero puede verificarlo.
Martin Tournoij
2
¡Bache! Si marca el problema de Gundo, alguien ha publicado una bifurcación que proporciona una función de búsqueda.
joeytwiddle
@joeytwiddle ¡Lo vi! Sin embargo, aún no lo he comprobado.
Kyle Strand

Respuestas:

6

En algunos casos, esto podría ser suficiente:

:changes

Lamentablemente, no muestra un resumen completo de su historial de edición. Parece mostrar solo la línea de texto en la que aterrizó después de cada cambio.

Eso es lo suficientemente bueno como para mostrar todas las inserciones o ediciones de una sola línea, pero solo la última línea de una inserción de varias líneas y ningún texto eliminado.

Solo se puede buscar visualmente, no automáticamente, aunque puede tomar este comando y luego hacer:

:PipeCmd changes | less

lo que permitiría buscar con /. O simplemente canalizar a en greplugar de less.

Una forma alternativa de buscar en esa lista sería instalar el complemento Unite y luego hacer:

:Unite change
joeytwiddle
fuente
1
Hm. Dado que hacer una búsqueda y reemplazo puede hacer que las palabras que se reemplazan sean completamente invisibles changes, eso no es terriblemente útil. Lo que realmente me gustaría es poder hacer :%s/foo/bar/g, luego hacer una búsqueda para fooeso (reconstruir y) mostrarme la última versión del archivo en el que fooestaba presente.
Kyle Strand
2

Ahora hay una bifurcación llamada "mundo" con esta función.

Mientras /esté en la ventana de deshacer árbol, buscará el historial en lugar del texto que se muestra en la ventana.

(Nota: esta característica parece haber sido adoptado de un tenedor gundo diferente No estoy seguro de que el crédito para la ejecución pertenece, y lo he hecho. No intentado ambas palas para ver cuál funciona mejor).

Kyle Strand
fuente