4

这是我当前的设置:

我的 ~/.zprofile (我确定该文件被执行):

# Customize to your needs...
export PATH=/Users/username/.rbenv/shims:/Users/username/.nvm/v0.9.8/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin

eval "$(rbenv init -)"

我想将我的全局定义的 ruby​​ 版本与M-x shell-command(或M-!)一起使用。我希望M-! ruby -v回来ruby 1.9.3p374 (2013-01-15 revision 38858) [x86_64-darwin12.3.0],但我得到ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]了。

如果我ruby -vM-x shell正确的版本中运行加载。我怀疑M-!它不能按预期工作,因为它作为非交互式 shell 运行。

有没有办法解决这个问题,除了运行类似的东西:M-! eval "$(rbenv init -)" && ruby -v?这可行,但我不想在eval "$(rbenv init -)" &&我执行的所有内容之前插入。

4

1 回答 1

4

Emacs 需要看到您从 shell 的路径,为了使这更容易,请使用以下 elisp 包。

https://github.com/purcell/exec-path-from-shell

您可以通过 el-get 安装它,也可以通过将其放到您的~/.emacs.d/lisp目录中并将其添加到您的~/.emacsor~/.emacs.d/init.el文件中来手动安装它。

(add-to-list 'load-path "~/.emacs.d/lisp")
(unless (require 'exec-path-from-shell nil 'noerror)
  (exec-path-from-shell-initialize))

lisp 文件将负责其余的工作。

于 2014-01-02T20:23:36.830 回答