在Git中提交时使用emacsclient -t

时间:2012-04-27 18:26:02

标签: git bash shell emacs

在我的.bash_profile中,我使用了这个:

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

当我使用Git提交更改时,它将打开一个新的emacs窗口,但是emacs --daemon。 如何将我的默认Git编辑器设置为启用了t标志的emacs?

4 个答案:

答案 0 :(得分:18)

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

如果还没有一个守护进程,这将启动一个守护进程。

您可能遇到引号问题,因为它在我的.gitconfig中显示为

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

答案 1 :(得分:5)

export GIT_EDITOR="`which emacsclient` -t -s $EMACS_SERVER_FILE"
在调用你的EDITOR或GIT_EDITOR之前,git似乎已经使用了PATH变量,因此即使通常会调用来自更新的Emacs的emacsclient,也会调用来自/ usr / bin的内置emacsclient。我通过从具有自己的环境的子进程获取可执行文件的路径来解决这个问题我认为(无论哪种方式都可以...)。

在OS X 10.8.2上测试,Emacs 24.1在本地构建,服务器正在运行,客户端通过套接字连接。

我没有测试过tcp客户端。

答案 2 :(得分:1)

我通常不会说“Read That Fine Manual”,但在这种情况下它只是适用。 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.

答案 3 :(得分:1)

真正的原因是emacs.tshere的版本是mac上的默认emacs,该版本没有选项“-t”。另外,似乎git不读取.bash_profile中的设置