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

Emacs Magit commit открывает новый клиент Emacs

Я использовал Magit некоторое время, и, когда он совершал транзакции, он просто разбивал окно и позволял мне совершать транзакции из одного сеанса emacs, но я, похоже, изменил это поведение на следующее:

Теперь, когда я совершаю свои поэтапные изменения, запускается новый клиент emacs, который занимает некоторое время, чтобы загрузить, наконец, позволив мне написать сообщение о фиксации. Затем я запускаю C-c C-c для фиксации. Конец проходит, когда я закрываю этого клиента.

Как заставить magit запускать фиксацию в рамках одного сеанса emacs и НЕ открыть целого нового клиента?

enter image description here

4b9b3361

Ответ 1

Эта ошибка отмечена (но не решена) как проблема github здесь: https://github.com/magit/magit/issues/862

Я думаю, что проблема здесь в том, что magit вызывает "emacsclient", который по умолчанию -/usr/bin/emacsclient. Он должен вызвать emacsclient, который упакован с emacs для правильной работы - другие emacsclients (из homebrew, macports и т.д.) Не будут знать, как подключиться. Обычно большинство из нас заботятся об этом с помощью псевдонима или переменной среды в наших сценариях запуска оболочки. Однако, когда вы запускаете emacs.app вне оболочки, они не видят их. Я смог получить git -commit-mode для правильной работы, добавив это в мой init.el:

(set-variable 'magit-emacsclient-executable "/Applications/Emacs.app/Contents/MacOS/bin/emacsclient")

Я использую сборку EmacsForMacOSX, 24.3. Это сработало для меня, надеюсь, оно исправляет его и для вас.

Ответ 2

Недавно мы внесли некоторые серьезные изменения в magit. Режим фиксации сильно изменился и создал много причуд. Исследуемые проблемы, а также текущие известные исправления перечислены в Известные проблемы в репозитории. Ваша проблема - одна из них.