http://vim.wikia.com/wiki/Diff_current_buffer_and_the_original_file
Вот функция и команда, чтобы увидеть разница между текущим редактируемым файлом и его неизмененной версией в файловой системе. Просто поместите это в ваш vimrc или в каталог плагинов, откройте файл, внесите некоторые изменения, не сохраняя их, и выполните функцию
: DiffSaved
.! с: DiffWithSaved () let filetype = & ft diffthis Vnew | г # | нормальный! 1Gdd diffthis exe "setlocal bt = nofile bh = wipe nobl noswf ro ft =". тип файла EndFunction ком! Вызов DiffSaved s: DiffWithSaved ()
Чтобы выйти из режима просмотра различий, вы можете использовать команду
: diffoff
.Ниже приведена аналогичная функция, адаптированная для имитации команды
'cvs diff'
...
Мне всегда нравятся diffchanges - красиво, просто, работает.
Введите следующее и используйте: Команда DIFF
function! s:diff()
let tmpa = tempname()
let tmpb = tempname()
earlier 100h
exec 'w '.tmpa
later 100h
exec 'w '.tmpb
update
exec 'tabnew '.tmpa
diffthis
vert split
exec 'edit '.tmpb
diffthis
endfunction
command! -nargs=0 DIFF call <SID>diff()
поддержки мерзавца следующая команда
:w !git diff --no-index -- % -
отображает его на команду путем добавления следующего к ~/.vimrc
command GitDiff execute "w !git diff --no-index -- % -"
, Теперь выполняющемуся :GitDiff
, становятся удобной небольшой командой для быстрого показа разности, прежде чем каждый сохранит.
из vimrc_example.vim:
" Convenient command to see the difference between the current buffer and the
" file it was loaded from, thus the changes you made.
if !exists(":DiffOrig")
command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis
\ | wincmd p | diffthis
endif
Не именно то, что вы ищете, но SCMDIFF.VIM действительно круто. Один клавиш, и он отличает ваш текущий файл с ревизией головки в репо управлению источником. Это предназначено для работы со многими SCM. Я использую это с Perforce.