2013-08-04 87 views
1

我使用git(在Linux上)並且想使用emacs作爲編輯器。然而,在git config --global core.editor emacs之後,任何git都會在* scratch *緩衝區中提交打開emacs,並且根本不加載COMMIT_EDITMSG。Emacs作爲git編輯器不加載COMMIT_EDITMSG

如何強制他們互相合作?所以git commit會打開加載了COMMIT_EDITMSG的emacs編輯器?

+0

「* Messages *'緩衝區中是否有任何錯誤消息? – punchagan

+0

沒有錯誤,我想有一些設置必須將.git/COMMIT_EDITMSG發送給emacs,並且我很懷念它。 – logcat

+2

COMMIT_EDITMSG只是'.git'目錄下的一個文件。 Git所做的就是告訴Emacs啓動加載該文件。需要檢查的事項:1.在您的環境中,也許'emacs'是帶有一些選項的'emacs'的別名。 2.嘗試使用'emacs -nw'(也許在窗口服務器中打開它會導致一些問題)。 3.嘗試簡單地執行'emacs ./。git/COMMIT_EDITMSG' 4.如果您當時已經運行了Emacs的一個副本:請閱讀'emacsclient'。 5.爲什麼不使用'magit'或'vc-git'? – 2013-08-05 05:51:30

回答

1

執行emacs ./.git/COMMIT_EDITMSG具有相同的行爲(劃傷緩衝區被打開)。這是因爲.emacs.d文件夾的所有者是root用戶。我需要做的僅僅是更改所有者sudo chown -hR logcat:logcat .emacs.d/

0

如果你在linux上,你不必碰〜/ .gitconfig來改變編輯器。 你可以只

export VISUAL=emacsclient 

爲了使這種更改永久,加入這一行的〜/ .bashrc。

+0

我嘗試提交,emacs打開scratch,但不是commit_editmsg – logcat

+0

你是否撤銷對〜/ .gitconfig的更改? –

+0

我實際上已經解決了這個問題,請看帖子的評論。 – logcat

0

啓動時顯示的緩衝區由變量initial-buffer-choice控制。在您的.emacs文件將其設置爲nil

(custom-set-variables 
    ;; ...other variables might be set here 
'(initial-buffer-choice nil)) 

如果調用emacs <filename> Emacs的,現在會顯示該文件,而不是在啓動時的臨時緩衝區。這也適用於COMMIT_EDITMSG。如果你沒有將文件傳遞給emacs,它將顯示暫存緩衝區。

您可能還希望禁用啓動畫面在分屏中進行調整。爲此,將以下行添加到您的.emacs文件中:

(setq inhibit-splash-screen t) 
相關問題