2013-11-24 1 views
0

Я пытаюсь добавить крюк Magit так, что когда *magit-diff * буфер (с использованием основного режима magit-diff-mode) открывается в окне Emacs, мой курсор перемещается (от окно статуса магии) в это окно.Автоматическое переключение в окно дифф Magit от магии, статус

Я попытался добавить крючок в magit-diff-mode-hook, но не смог заставить его работать вообще.

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

P.S: Если есть два окна diff (скажем, потому что другой magit-diff из другого проекта будет открыт), я хотел бы перейти к тому, что только что открылось.

ответ

1

magit-diff-mode-hook не очень полезно, поскольку его функции запускаются, когда diff-buffer только что сконструирован и по-прежнему активен. Для diff-buffer вызывается только display-buffer. Итак, фокус восходит к вызывающему. Но diff-buffer является следующим в стеке окон. Таким образом, следующее должно работать (пожалуйста, проверьте его более тщательно, чем я):

(defadvice magit-diff (after switch-to-diff activate) 
    (other-window 1)) 
+0

Я проверю его ... Кстати, спасибо за все ваши недавние сообщения о Emacs! Тем не менее, я понял, что * magit * был даже лучше, чем я думал: уже есть несколько ярлыков, подключенных к * magit *, которые позволяют сэкономить время, поэтому я не уверен, что буду «возиться» с ним. Вместо этого я попытаюсь изучить правильный способ использования * magit *:) –

1

Magit на самом деле делает то, что вы просите. Когда я использую d или D, diff отображается в другом окне, и это окно получает фокус. Я не уверен, что если бы это всегда делалось, я бы, возможно, изменил magit-diff-*, чтобы вести себя в какой-то момент, вместо того, что он делал, прежде чем я коснулся его.

Если это не соответствует вашему опыту (с версией разработки), то, пожалуйста, откройте проблему.

Смежные вопросы