Как вы используете дерево изменений в VIM

14

Возможно ли восстановить ветку изменений, которые я «забросил»? Например, я отменяю несколько операций, используя u, затем я делаю изменение в режиме вставки. Но потом я понимаю, что не хочу этого изменения, я бы предпочел вернуться туда, где я был в начале (до отмены).

Эти изменения потеряны навсегда?

Nebril
источник

Ответы:

12

Для навигации по дереву отмены лучше всего использовать плагин Gundo . Это создает новое разделенное окно со специальными привязками для перехода к различным ветвям в дереве отмены, а также панель предварительного просмотра, которая показывает, что именно изменилось между каждым узлом в дереве.

Стив Вермейлен
источник
Другим выбором будет UndoTree.
musicmatze
12

Для таких простых случаев, как это, вы можете просто нажать g-.

По сути, это то, что происходит в списке изменений в хронологическом порядке (рассматривая uфактическое изменение), а не линейно (как с u/ <C-r>).

Например, если вы вставили несколько строк и нажали g-, это происходит:

демонстрация

Дверная ручка
источник
как вы создали анимированный GIF?
Гидо
4
@guido Я использовал специальный инструмент под названием mkcast .
Дверная ручка
2

Нет, вы не можете идти вперед и назад в дереве. Лучший способ - использовать плагин для этой работы.

Еще один плагин - Undotree . Это как Gundo , но с некоторыми отличиями:

  1. Чистая реализация vimscript и никакие сторонние библиотеки (такие как python) не требуются, не беспокойтесь о производительности, vim не так уж сложно справиться с этим. Единственная зависимость - это инструмент 'diff', который всегда поставляется с vim, и даже без 'diff' вы все равно можете использовать большинство функций этого скрипта.
  2. Обновленное дерево отмены в реальном времени. После внесения изменений дерево отмен будет обновлено одновременно.
  3. Несколько полезных отметок, таких как текущий набор изменений, следующий набор изменений, сохраненный набор изменений и т. Д.
  4. Переключение между относительной и абсолютной метками времени.
  5. Обновленное окно отмены в реальном времени.
  6. Возможность очистить историю отмены.
  7. Более настраиваемый.
adelarsq
источник
4
Разве этот ответ прямо не опровергается постом ручки ?
Калеб