Подтвердить что ты не робот

Отменить все изменения с момента открытия буфера в vim

Как я могу отменить все изменения с момента открытия буфера? Я предполагаю, что может быть какая-то форма :earlier, которая делает это.

UPDATE. Многие из них предлагают решения для перехода к более ранним файлам. Это не то, о чем я просил. Я хочу вернуться в исходное состояние, в котором находился файл, когда я первоначально загрузил его в буфер, независимо от того, сколько записей было сделано с тех пор.

4b9b3361

Ответ 1

Чтобы вернуть текущий буфер в состояние до самого первого изменения помните Vim в списке отмены (см. :help undo-tree), используйте команду

:u1|u

Ответ 2

Вы можете использовать

:edit!

чтобы войти в самое раннее сохраненное состояние. Подробнее см. :help edit!.

Вы также можете проверить что-то вроде gundo.vim (можно найти здесь), который графически отображает все дерево отмены, и вы можете легко перепрыгивать между точками. Тогда есть histwin plugin, который я еще не использовал, но предлагает аналогичную функциональность.

Ответ 3

Из документации

: u [ndo] {N} Перейти после номера изменения {N}. См. | Отменить ветки |             для значения {N}. {не в Vi}

Если вы введете :u 1 он, похоже, идет после первого изменения; нажатие u или ввод :u вернется к изменению.

В противном случае вы можете использовать очень большой счетчик для :earlier или g- например :earlier 100000000 или 100000000g-

Если вы поместите это в команду mapping/command, он может сделать любой из них без особых проблем. например.

:nnoremap <C-F12> :earlier 100000000<CR>

Ответ 4

Чтобы получить доступ к ранее сохраненному состоянию файла, я думаю, что следующая работа:

: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.

Ответ 5

:earlier {N}m Go to older text state about {N} minutes before.

Это должно помочь... И даже у вас есть {N} h, что около {N} часов раньше.

Ответ 6

Графическое решение:

Плагин Gundo позволяет визуально сравнивать изменения в истории отмены.

Откройте Gundo "панель истории отмены", введите G, перейдите к последней строке, затем мы вернемся к исходному файлу.

Ответ 7

В neovim вы можете просто использовать :u0