Подтвердить что ты не робот

Как использовать Vim для быстрого просмотра изменений Mercurial или Git

Когда я редактирую файл в Vim, я хотел бы быстро выделить любые изменения, которые я сделал с момента последнего коммита, но все еще могу редактировать файл. Есть ли что-нибудь, что подходит для этого?

4b9b3361

Ответ 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 всякий раз, когда вы сохраняете файл. Вот как это выглядит в действии:

enter image description here

Ответ 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. Вы можете захватить результаты любой команды оболочки таким образом.

Ответ 8

Для Mercurial эквивалент fugitive равен lawrencium: http://bolt80.com/lawrencium

Он поддерживает как бок о бок diff, так и выделенный diff -подобный вид (в основном то, что вы получаете от hg diff <file>.

(отказ от ответственности: я автор)