Как использовать Vim, чтобы быстро увидеть изменения Mercurial или Git - PullRequest
26 голосов
/ 10 декабря 2010

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

Ответы [ 8 ]

17 голосов
/ 10 декабря 2010

Взгляните на плагин Тима Поупа fugitive.vim .

Я git purist и обычно захожу в командную строку для git, но когда я в vim, я обнаруживаю, что это делает большую часть того, что мне нужно сделать, и все же я могу напрямую вызывать команды git.

13 голосов
/ 01 марта 2013

Существует новый плагин, который делает это: vim-gitgutter . Он помещает изменения в желоб Vim при каждом сохранении файла. Вот как это выглядит в действии:

enter image description here

12 голосов
/ 10 декабря 2010

Попробуйте vcscommand plugin, используйте :VCSVimDiff для просмотра различий с текущей версией (поддерживает hg и git, возможно, также некоторые другие системы SCM) и внутренние :bdelete (:bd) (вкл.открыл буфер конечно, не на уже существующий) чтобы перестать диффундировать.Если вы используете gentoo, он доступен в репозитории: app-vim/vcscommand.

5 голосов
/ 10 декабря 2010

Один из методов заключается в следующем:

:!git diff

Это покажет изменения (ко всем файлам) по сравнению с HEAD

сделать один файл :!git diff path/to/file

это быстрый способ сделать это без переключения различных приложений или установки каких-либо плагинов (что не всегда легко сделать в некоторых системах, над которыми у вас нет контроля).

Это не даст вам «встроенную» подсветку, но должно работать нормально.

Другой способ сделать это быстро - это :r !git diff посмотреть на изменения, а затем набрать u, чтобы отменить добавление. Это тоже хорошо работает, особенно если вы хотите восстановить текст из HEAD

4 голосов
/ 12 июня 2012

Как насчет этого (плагины не требуются):

:new | r ! hg annotate -un #

Этот прогон hg annotate указывает имя файла текущего буфера, а затем выводит выходные данные в новый буфер.

Эта форма команды явно не относится к git и hg. Вы можете получить результаты любой команды оболочки таким образом.

4 голосов
/ 10 декабря 2010

Есть сайт по совместному использованию git и vim:

http://www.osnews.com/story/21556/Using_Git_with_Vim

Я использую один git.vim, и каждый раз, когда мне нужен diff, я могу проверить его с помощью \gd.

1 голос
/ 10 июля 2013

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

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

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

1 голос
/ 09 июля 2013

Это работает как для Hg, так и для Git: https://github.com/mhinz/vim-signify

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...