Поместите следующее в ваш файл .vimrc, взятый из :h :DiffOrig
command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis | wincmd p | diffthis
Затем при появлении запроса нажмите o
для подтверждения и затем выполните :DiffOrig
. Вам будет представлен дифференциал.
Если вы решили, что хотите извлечь файл с диска, выполните :e!
, чтобы перезагрузить файл с диска.
Краткий обзор :DiffOrig
Вертикально разделить новый буфер и прочитать файл с диска и пометить оба буфера, которые нужно преобразовать.
Слава деталей для :DiffOrig
:vert {cmd}
выполнит любой {cmd}, а любые разбиения будут разбиты по вертикали.
new
открыть новый сплит с новым буфером
set bt=nofile
установите 'buftype'
на nofile
, чтобы файл не записывался на диск
r
- это сокращение от :read {file}
. r #
считывает в буфер альтернативный файл, который является буфером, который был только что разделен. Этот альтернативный файл - это файл, который читается с диска.
0d_
, что сокращенно от 0delete _
. Когда альтернативный файл читается в нем, вверху остается пустая строка. 0delete _
удалит верхнюю строку в регистр черной дыры, чтобы он не связывался с другими регистрами.
diffthis
установить буфер на diffed.
windcmd p
переключается обратно в предыдущее окно. Это то же самое, что <c-w>p
в обычном режиме.
diffthis
устанавливает измененный буфер для включения в набор diff.
Для получения дополнительной информации:
:h :DiffOrig
:h :e
:h :diff
:h vert
:h new
:h r
:h d
:h "_
:h windcmd
:h diffthis
:h :c_#