Используйте emacsclient -t, когда вы совершаете в Git

В моем .bash_profile я использую это:

export EDITOR=emacsclient
alias e='emacsclient -t'

Когда я вношу изменения с помощью Git, он откроет новое окно emacs, но с emacs --daemon. Как я могу установить для моего редактора по умолчанию Git emacs с включенным флагом t?

Ответ 1

истинная причина для этого - версия emacs.there по умолчанию emacs на mac, в этой версии не имеет опции "-t". Также кажется, что git не читает параметр в .bash_profile

Ответ 2

git config --global core.editor 'emacsclient -t -a=\"\"'

Это запустит демон, если он еще не запущен.

У вас могут возникнуть проблемы с кавычками, поскольку он отображается в моем .gitconfig как

[core]
    editor = emacsclient -t -a=\\\"\\\"

Ответ 3

export GIT_EDITOR="`which emacsclient` -t -s $EMACS_SERVER_FILE"

git, кажется, сбрасывает переменную PATH перед вызовом вашего EDITOR или GIT_EDITOR, поэтому вызывается встроенный emacsclient из /usr/bin, даже если обычно вызывается emacsclient из вашего более современного Emacs. Я решил это, получив путь к исполняемому файлу из подпроцесса, у которого есть своя среда, в которой я верю (в любом случае это работает...).

Протестировано на OS X 10.8.2 с Emacs 24.1, созданным локально, сервером и клиентами, подключающимися через сокет.

Я не тестировал клиентов tcp.

Ответ 4

Обычно я не говорю "Прочтите это точное руководство", но в этом случае он просто применяется. git commit --help имеет это сказать о теме:

ENVIRONMENT AND CONFIGURATION VARIABLES
   The editor used to edit the commit log message will be chosen
   from the GIT_EDITOR environment variable, the core.editor configuration
   variable, the VISUAL environment variable, or the EDITOR environment
   variable (in that order). See git-var(1) for details.