Отмена хороша иметь в Vim. Но иногда, в известной положительной стороне, я хочу стереть свою историю отмены - чтобы смочь использовать u
отменить отдельные изменения, но только назад до определенного момента. (Например, это могло бы быть, когда я в последний раз фиксировал.)
Один способ выполнить это состоял бы в том, чтобы закрыть и вновь открыть файл - история отмены запускается чистый в той точке. Но это - стычка.
В прошлом я выполнил это с :edit!
. Но в Vim 7.3, который не отбрасывает историю отмены.
Там другой путь состоит в том, чтобы сделать это кроме закрытия файла?
Функция Benoit не работала на меня, но я нашел что-то подобным в руководстве энергии, здесь:
http://www.polarhome.com/vim/manual/v73/undo.html#undo-remarks
Я хлопнул его в функцию, добавленную к моему vimrc, и это, кажется, хорошо работает на энергии 7.3:
" A function to clear the undo history
function! <SID>ForgetUndo()
let old_undolevels = &undolevels
set undolevels=-1
exe "normal a \<BS>\<Esc>"
let &undolevels = old_undolevels
unlet old_undolevels
endfunction
command -nargs=0 ClearUndo call <SID>ForgetUndo()
Это может использоваться с :ClearUndo
.