我在OS X 10.6.8上使用Emacs 24。做magit-status
说
搜索程序:没有这样的文件或目录,git
但是,Emacs shell能够找到git
,因此这似乎不是$PATH
问题。还有什么呢?
答案 0 :(得分:4)
尝试检查exec-path
变量的值。这将控制Emacs为外部可执行文件(包括git)查找的目录。
这是一个可自定义的变量,您可以将git
的路径添加到现有目录列表中。
我的.emacs.d/init.el
文件中的elisp片段用于在OSX下安装我的Emacs,它可以正确设置PATH
和exec-path
。
;;; Set localized PATH for OS X
(defun my-add-path (path-element)
"Add the specified PATH-ELEMENT to the Emacs PATH."
(interactive "DEnter directory to be added to path: ")
(if (file-directory-p path-element)
(progn
(setenv "PATH" (concat (expand-file-name path-element) path-separator (getenv "PATH")))
(add-to-list 'exec-path (expand-file-name path-element)))))
(if (fboundp 'my-add-path)
(let ((my-paths (list "/opt/local/bin" "/usr/local/bin" "/usr/local/git/bin")))
(dolist (path-to-add my-paths (getenv "PATH"))
(my-add-path path-to-add))))
答案 1 :(得分:2)
OS X上的Emacs使用系统范围的环境变量,可以通过在正确的目录中创建魔术environment.plist
XML文件来覆盖它们。但是,更好的解决方案是让Emacs从shell中复制$PATH
的值,以便它与您在Terminal.app
中看到的值相匹配。
@ Anupam的回答基于我最初为此目的编写的一段代码,但我现在已经改进了代码并将其发布为little elisp library called exec-path-from-shell
,您可以从Marmalade或{{3}安装它}。