2012-04-27 19 views
11

提交時在我.bash_profile emacsclient -t,我用這個:使用Git中

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

當我提交使用Git的變化,它會打開一個新的Emacs窗口,但emacs --daemon。 如何在啓用t標誌的情況下將默認Git編輯器設置爲emacs?

+1

設置我敢肯定,莫里茨·布克斯有答案,但我對你的措辭有些困惑。你是說你希望你的標準編輯器是'emacsclient -t'(在這種情況下,你可以簡單地指定'EDITOR'的值),或者你希望git編輯器與標準編輯器不同。如果你正在運行'emacs --daemon',那麼emacsclient將連接到'-t'標誌或其他地方,所以我不確定你的評論意味着什麼。 – phils 2012-04-28 08:28:29

+0

實際上,這個要求來自:當emacs啓動時,需要一些時間,這就是爲什麼我使用emacs - daemon。當我使用git commit時,它會打開一個新的emacs,因此我必須等待.so我想用emacsclient -t打開一個emacs窗口。我清楚了嗎? – newlife 2012-05-04 18:16:17

回答

0

的真正原因是emacs.there的版本是Mac,哪個版本亙古不變的有選項「-t」。還有一個默認的Emacs,似乎不列入混帳讀取.bash_profile中

3

我通常不會說「閱讀精細手冊」,但在這種情況下,它只是適用。 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. 
+0

[核心] editor =「emacsclient -t」我在.gitconfig中使用這個。但是,它不工作,任何建議? – newlife 2012-05-04 18:55:43

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

如果沒有一個已經運行這將啓動一個守護進程。

你可能有與引號問題,因爲它在我的.gitconfig顯示爲

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

emacsclient:無效選項 - t 嘗試使用'emacsclient --help'以獲取更多信息 錯誤:編輯器'emacsclient -t -a = \「\」'出現問題。 請使用-m或-F選項提供消息。這是我使用設置時的輸出,我在哪裏可以獲得關於「引號」的這些規範? – newlife 2012-05-10 02:45:14

+0

當然,沒有必要在單引號字符串中避開雙引號? – phils 2012-05-10 03:51:27

+0

@newlife你使用的是什麼操作系統,以及哪個版本的emacs? http://linux.die.net/man/1/emacsclient – tacaswell 2012-06-05 16:21:39

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

混帳似乎與PATH變量渣土調用你的編輯器或GIT_EDITOR所以內置的前即使通常會調用更新的Emacs中的emacsclient,也會調用/ usr/bin中的emacsclient。我通過從一個擁有自己的環境的子進程中獲取可執行文件的路徑來解決這個問題,我相信(無論哪種方式......)。

在OS X 10.8.2上測試,Emacs 24.1在本地構建,服務器運行和客戶端通過套接字連接。

我還沒有測試過tcp客戶端。