Могу ли я увидеть изменения перед сохранением файла в Vim?

127
задан chaos 4 August 2009 в 21:54
поделиться

7 ответов

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

55
ответ дан 24 November 2019 в 00:35
поделиться

Мне всегда нравятся diffchanges - красиво, просто, работает.

10
ответ дан 24 November 2019 в 00:35
поделиться

Введите следующее и используйте: Команда 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()
2
ответ дан 24 November 2019 в 00:35
поделиться
:w !diff % -
145
ответ дан 24 November 2019 в 00:35
поделиться

поддержки мерзавца следующая команда

:w !git diff --no-index -- % -

отображает его на команду путем добавления следующего к ~/.vimrc

command GitDiff execute "w !git diff --no-index -- % -"

, Теперь выполняющемуся :GitDiff, становятся удобной небольшой командой для быстрого показа разности, прежде чем каждый сохранит.

0
ответ дан 24 November 2019 в 00:35
поделиться

из 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
9
ответ дан 24 November 2019 в 00:35
поделиться

Не именно то, что вы ищете, но SCMDIFF.VIM действительно круто. Один клавиш, и он отличает ваш текущий файл с ревизией головки в репо управлению источником. Это предназначено для работы со многими SCM. Я использую это с Perforce.

2
ответ дан 24 November 2019 в 00:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: