2012-11-09 27 views
2

我使用OS X 10.8,和我以前釀造安裝的emacs的一個較新的版本比一個隨OS X.

較新的emacs的二進制文件安裝在/usr/local/bin(24.2.1)中,以及/usr/bin(22.1.1)中的舊版「隨附的osx」。

我更新了我的$PATH env變量,並在其中加上了/usr/local/bin。它在我的shell中工作正常(即鍵入emacs運行24.2.1版本),但是當git打開編輯器時,emacs版本是22.1.1。

是不是git應該使用$PATH找到我想要使用的編輯器?

附加信息:

$ type -a emacs 
emacs is /usr/local/bin/emacs 
emacs is /usr/bin/emacs 
emacs is /usr/local/bin/emacs 
$ env 
PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin 
SHELL=/bin/zsh 
PAGER=most 
EDITOR=emacs -nw 
_=/usr/bin/env 

請注意,我不希望把我的編輯器的絕對路徑直接在我的git的conf,因爲我用在多個系統中,這CONF。

編輯:這是一個有點我.zshrc

# Mac OS X 
if [ `uname` = "Darwin" ]; then 
    # Brew binaries 
    PATH="/usr/local/bin":"/usr/local/sbin":$PATH 
else # Everyone else (Linux) 
    # snip 
fi 

所以,是的,我會在第一if添加一行export EDITOR='/usr/local/bin emacs -nw',但我想明白爲什麼git是不是用我的PATH變量:)

+0

是的,它應該從路徑中選取編輯器。你把這個調整到了你的PATH? '.zshrc'?也許它需要進入'.zshenv'。 IIRC,'.zshrc'只能在交互式shell中找到。 – jszakmeister

+0

git打開編輯器時的參數和工作路徑是什麼?也許你應該檢查你的倉庫配置文件。 – cfy

+0

把'PATH'調整到'.zshenv'中並沒有解決問題,並且emacs 22.1.1總是用於我使用的任何命令或我所在的回購(我檢查了我的回購配置,沒有編輯器的蹤跡那裏有相關的配置)。 –

回答

2

安裝git 1.8.0修復了這個問題。

舊版本是1.7.9.6 (Apple Git-31.1)。這很奇怪,因爲我沒有在更新日誌中找到任何對此類問題的引用。

+0

這似乎是蘋果隨xcode一起發佈的git版本和標準版本之間的差異,而不是1.7.9和1.8之間的差異。我的/ usr/bin/git是「git version 1.8.3.4(Apple Git-47)」,它也使用了不正確的路徑。單獨安裝git(來自macports的1.8.4)按預期工作。 –

0

最簡單的解決方法是在環境變量中設置完整路徑。

默認情況下,OSX使用bash(1),因此請在.bash_profile的某處設置export EDITOR=/usr/local/bin/emacs -nw以設置所有交互式bash shell的變量。

+0

將'EDITOR' env變量設置爲完整路徑的作品,但正如我在我的問題中提到的,我不想使用此解決方案,因爲我的confs文件在多個系統中使用。在.bash_profile中設置此項不起作用,我使用'chsh'將'zsh'設置爲我的默認shell。 –