Я использую git-gutter
для визуализации изменений, которые я вношу в файлы с контролем версий, и magit
для подготовки /committing/diffing и т. д.
При работе над проектом я обычно всегда держу окно magit-status
открытым. Моя проблема заключается в том, что когда я помещаю или удаляю изменения в буфере magit-status
, а затем переключаюсь обратно в окно, показывающее файл, статус которого я только что обновил, краевые аннотации, созданные git-gutter
не настраивается автоматически. (Мой текущий обходной путь для запуска обновления — нажать SPC Backspace, а затем C-x C-s, чтобы сохранить файл, но это не очень эффективно.)
Я посмотрел на git-gutter.el
, и, конечно же, он предоставляет настраиваемую переменную с именем git-gutter:update-hooks
, для которой установлено значение
(after-save-hook after-revert-hook window-configuration-change-hook)
по умолчанию. Так что все, что мне действительно нужно сделать, это добавить правильный хук в этот список, и я буду готов к работе. Как называется хук, который запускается при переключении окон? Я просмотрел различные разделы руководства по Elisp и не смог найти то, что ищу. В качестве альтернативы, предоставляет ли magit
хук, который запускается при промежуточном или неустановленном изменении?
ИЗМЕНИТЬ:
Если вы читаете это, потому что столкнулись с похожей проблемой: оба ответа, которые я получил ниже, являются рабочими решениями! Для более новых версий magit
решение @lunaryorn короткое и приятное. решение @Jordon Biondo требует добавления немного большего количества пользовательского кода, но содержит общие (!) советы по созданию пользовательских хуков и внедрению их в существующую функциональность. Итак, поскольку я могу принять только один ответ: Повысьте свою SO-карму, вознаградив обоих авторов голосованием :)
magit-revert-buffer-hook
в любом буфере репо после каждой операции. - person lunaryorn   schedule 29.04.2014