Когда я редактирую файл в Vim, я хотел бы быстро выделить любые изменения, которые я сделал с момента последнего коммита, но все еще могу редактировать файл. Есть ли что-нибудь, что подходит для этого?
Как использовать Vim для быстрого просмотра изменений Mercurial или Git
Ответ 1
Попробуйте vcscommand плагин, используйте :VCSVimDiff
для просмотра различий с текущей версией (поддерживает как hg, так и git, возможно, некоторые другие SCM-системы также) и внутренний :bdelete
(:bd
) (на открытом буфере, конечно, не на уже существующем), чтобы прекратить различать. Если вы используете gentoo, он доступен в репозитории: app-vim/vcscommand
.
Ответ 2
Посмотрите на плагин Tim Pope fugitive.vim.
Я пуст git и обычно забираю в командной строке для git, но когда я нахожусь в vim, я нахожу, что это делает большую часть того, что мне нужно сделать, и все же я все еще могу позвонить git непосредственно.
Ответ 3
Там есть новый плагин, который делает это: vim-gitgutter. Он помещает изменения в желоб Vim всякий раз, когда вы сохраняете файл. Вот как это выглядит в действии:
Ответ 4
один метод заключается в следующем:
:!git diff
Это покажет изменения (ко всем файлам) по сравнению с HEAD
сделать один файл
:!git diff path/to/file
это быстрый способ сделать это, не переключая разные приложения и не устанавливая никаких плагинов (что не всегда легко сделать на некоторых системах, в которых вы не контролируете).
он не даст вам "встроенную" подсветку, но должен работать нормально.
Другой способ сделать это быстро - сделать :r !git diff
посмотреть на изменения, а затем набрать u
, чтобы отменить добавление. Это тоже хорошо работает, если вы хотите выдернуть текст из HEAD
Ответ 5
Существует сайт по использованию git и vim вместе:
http://www.osnews.com/story/21556/Using_Git_with_Vim
Я использую git.vim один, и каждый раз, когда мне нужен diff, я могу проверить его с помощью \gd
.
Ответ 6
Как насчет этого (никаких плагинов не требуется):
:new | r ! hg annotate -un #
Запустите hg annotate
в имени текущего буфера, затем выгрузите вывод в новый буфер.
Эта форма команды, очевидно, не специфична для git и hg. Вы можете захватить результаты любой команды оболочки таким образом.
Ответ 7
Это работает как для Hg, так и для Git: https://github.com/mhinz/vim-signify
Ответ 8
Для Mercurial эквивалент fugitive
равен lawrencium
: http://bolt80.com/lawrencium
Он поддерживает как бок о бок diff, так и выделенный diff
-подобный вид (в основном то, что вы получаете от hg diff <file>
.
(отказ от ответственности: я автор)