2010-10-28 61 views
8

我試圖使用MacVim作爲默認編輯器(顯然,在我的Mac上)。我想讓MacVim編輯提交消息時,我hg ci。不幸的是,當我這樣做時(通過設置EDITOR=mvimalias vi='mvim')MacVim彈出一個空的消息(即沒有在下半部的樣板),當我保存該提交消息時,我得到錯誤「中止:空提交消息」 。MacVim和Mercurial簽入

有沒有辦法使用MacVim(大概通過mvim)編輯提交消息時檢查更改與Mercurial?

感謝您的閱讀,我期待着閱讀答案。

布賴恩

+0

你是設置在你的hgrc或只是env變量? – Kasumi 2010-10-28 18:16:44

+0

bash env變量。 – 2010-10-28 18:38:51

+0

請注意,別名在shell中是內部的; shell運行的程序無法訪問它們。 – 2010-10-29 01:22:22

回答

11

EDITOR='mvim -f',每尖端從FAQ爲使其與Git的工作:

如何使用的MacVim編輯Git的提交信息?

以下行添加到該文件~/.profile

export EDITOR='mvim -f -c "au VimLeave * !open -a Terminal"' 

最後一部分保證了終端獲取關閉提交信息後再次聚焦。 (請注意,您需要將mvim腳本放在您的路徑中才能使用)。

+0

所以答案就是使用Git。顯然它有優越的FAQ。呵呵。 – 2010-10-28 18:34:37

+0

順便說一下,'export EDITOR ='...''擴展爲'mvim -f -c「au VimLeave桌面文檔下載庫電影音樂圖片公共站點bin!open -a Terminal」'。我不確定這是否是預期/期望的行爲。我在'export'之前在腳本中加了'set -f'來防止glob。 – 2010-10-28 18:43:18

+1

@Roger Pate:我同意,這似乎很奇怪。我已經開始了一個新的問題,看看答案是否可以根除:http://stackoverflow.com/questions/4052593/mac-os-x-bash-default-pathname-expansion-or-bug – 2010-10-29 14:06:53

0

如果您在一臺機器上有多個SCM(例如,您必須像我一樣使用Subversion和Mercurial),那麼您可以通過使用HGEDITOR而不是更通用的EDITOR env來區分編輯器。舉例來說,我已經設置了以下環境變量:

export HGEDITOR='mvim -f -c "au VimLeave * !open -a Terminal"' 
export SVN_EDITOR='mvim -f -c "au VimLeave * !open -a Terminal"' 

在這種情況下,它的排序毫無意義的,因爲配置是一樣的,但是這僅僅是說明這一點。

這當然引發了一個問題,即您可以將EDITOR設置爲默認值,並將其作爲您的各種使用該應用程序的應用程序的默認值,然後使用特定於應用程序的變量覆蓋它以滿足需要不同的應用程序。我傾向於使用特定於應用程序的變量,以便...徹底,我猜(有些人可能稱之爲其他:)。