5

我在 OS X 10.6.8 上使用 Emacs 24。做magit-status

搜索程序:没有这样的文件或目录,git

但是,Emacs shell 能够找到git,所以这似乎不是$PATH问题。还能是什么?

4

2 回答 2

5

尝试检查exec-path变量的值。这控制了 Emacs 查找外部可执行文件(包括 git)的目录。

这是一个可自定义的变量,您可以将路径添加到git现有目录列表中。

我的.emacs.d/init.el文件中有 elisp 片段,用于在 OSX 下安装 Emacs,它设置了PATHexec-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))))
于 2012-09-12T22:43:52.133 回答
2

OS X 上的 Emacs 使用系统范围的环境变量,可以通过environment.plist在正确的目录中创建一个魔法 XML 文件来覆盖它。不过,更好的解决方案是让 Emacs$PATH从您的 shell 中复制 的值,以便它与您在Terminal.app.

@Anupam 的答案基于我最初为此目的编写的一段代码,但我现在已经改进了该代码并将其发布为一个名为 elisp 的小库exec-path-from-shell,您可以从 Marmalade 或Melpa安装它。

于 2012-09-13T09:39:10.677 回答