Поиск всех версий файла в дереве отмены

11

Есть ли более простой способ найти конкретное изменение в дереве отмен Vim, чем просто просматривать случайные старые версии файла по одной (используя команды vanilla VIM, Gundo или другой плагин)?

В идеале я хотел бы ввести шаблон поиска, который будет сопоставляться со всеми различиями, показанными на панели предварительного просмотра Gundo, а затем заставить Gundo показать мне, какие версии имеют различия, соответствующие этому поиску.

Этот вопрос задает что-то почти идентичное, но спрашивающий принял ответ, который просто рекомендует Gundo, который, как это ни удивительно, похоже, не выполняет то, что я прошу.

Я представил это как новую функцию для Gundo , но не получил ответа.

РЕДАКТИРОВАТЬ: Существует открытый запрос на эту функцию для Undotree.

ПРИМЕЧАНИЕ. Этот вопрос был «перенесен вручную» из суперпользователя .

Кайл Стрэнд
источник
Примечание: plugin-gundoбыло бы хорошим тегом для этого вопроса, но, к сожалению, этот тег еще не существует, и у меня нет представителя.
Кайл Стрэнд
1
Там тоже нет дерева . Я не знаю, чем именно он отличается от gundo, или поддерживает ли он нужную вам функцию, но вы можете проверить это.
Мартин Турной
2
Удар! Если вы проверите проблему Gundo, кто-то опубликовал форк, который предоставляет функцию поиска.
Joeytwiddle
@joeytwiddle Я видел это! Пока еще не проверил это.
Кайл Стрэнд

Ответы:

6

В некоторых случаях этого может быть достаточно:

:changes

К сожалению, он не показывает полную сводку вашей истории редактирования. Похоже, чтобы показать только строку текста, который вы приземлились после каждого изменения.

Этого достаточно, чтобы отобразить все однострочные вставки или правки, но только последнюю строку многострочной вставки без удаленного текста.

Его можно искать только визуально, а не автоматически, хотя вы можете получить эту команду и затем выполнить:

:PipeCmd changes | less

который позволил бы искать с /. Или просто труба grepвместо less.

Альтернативный способ поиска в этом списке - установить плагин Unite, а затем выполнить:

:Unite change
joeytwiddle
источник
1
Гектометр Поскольку выполнение поиска и замены может сделать заменяемое слово (слова) полностью невидимым changes, это не очень полезно. То, что я действительно хотел бы, это иметь возможность сделать :%s/foo/bar/g, а затем выполнить поиск foo, который (реконструировать и) покажет мне последнюю версию файла, в котором fooприсутствовал.
Кайл Стрэнд,
2

Теперь есть функция Gundo, называемая «Mundo» с этой функцией.

Находясь в окне отмены дерева, /будет искать историю, а не текст, отображаемый в самом окне.

(Примечание: эта функция, по-видимому, была взята из другого форка Gundo . Я не уверен, к чему относится реализация, и я не пробовал обе вилки, чтобы увидеть, какая из них работает лучше.)

Кайл Стрэнд
источник