Ответ 1
Чтобы вернуть текущий буфер в состояние до самого первого изменения
помните Vim в списке отмены (см. :help undo-tree
), используйте команду
:u1|u
Как я могу отменить все изменения с момента открытия буфера? Я предполагаю, что может быть какая-то форма :earlier
, которая делает это.
UPDATE. Многие из них предлагают решения для перехода к более ранним файлам. Это не то, о чем я просил. Я хочу вернуться в исходное состояние, в котором находился файл, когда я первоначально загрузил его в буфер, независимо от того, сколько записей было сделано с тех пор.
Чтобы вернуть текущий буфер в состояние до самого первого изменения
помните Vim в списке отмены (см. :help undo-tree
), используйте команду
:u1|u
Вы можете использовать
:edit!
чтобы войти в самое раннее сохраненное состояние. Подробнее см. :help edit!
.
Вы также можете проверить что-то вроде gundo.vim
(можно найти здесь), который графически отображает все дерево отмены, и вы можете легко перепрыгивать между точками. Тогда есть histwin plugin
, который я еще не использовал, но предлагает аналогичную функциональность.
Из документации
: u [ndo] {N} Перейти после номера изменения {N}. См. | Отменить ветки | для значения {N}. {не в Vi}
Если вы введете
:u 1
он, похоже, идет после первого изменения; нажатие u
или ввод :u
вернется к изменению.
В противном случае вы можете использовать очень большой счетчик для :earlier
или g-
например
:earlier 100000000
или 100000000g-
Если вы поместите это в команду mapping/command, он может сделать любой из них без особых проблем. например.
:nnoremap <C-F12> :earlier 100000000<CR>
Чтобы получить доступ к ранее сохраненному состоянию файла, я думаю, что следующая работа:
:earlier 1f
Из документации:
:earlier {N}f Go to older text state {N} file writes before.
When changes were made since the last write
":earlier 1f" will revert the text to the state when
it was written. Otherwise it will go to the write
before that.
When at the state of the first file write, or when
the file was not written, ":earlier 1f" will go to
before the first change.
:earlier {N}m Go to older text state about {N} minutes before.
Это должно помочь... И даже у вас есть {N} h, что около {N} часов раньше.
Графическое решение:
Плагин Gundo позволяет визуально сравнивать изменения в истории отмены.
Откройте Gundo "панель истории отмены", введите G, перейдите к последней строке, затем мы вернемся к исходному файлу.
В neovim вы можете просто использовать :u0