gpt4 book ai didi

macos - 如何在 Emacs 的 shell 命令中使用正确的 rbenv Ruby 版本?

转载 作者:行者123 更新时间:2023-12-01 01:10:06 111 4
gpt4 key购买 nike

这是我目前的设置:

  • 配备 Mountain Lion 的 MacBook
  • Emacs 是 http://emacsformacosx.com/
  • rbenv 与全局 1.9.3-p374
  • 登录shell是zsh

  • 我的 ~/.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 -)"

    我想在 M-x shell-command 中使用我的全局定义的 ruby​​ 版本(或 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 -)" &&在我执行的一切面前。

    最佳答案

    Emacs 需要查看 shell 中的路径,为了更容易,请使用以下 elisp 包。

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

    您可以通过 el-get 安装它,也可以手动将其放入您的 ~/.emacs.d/lisp 中。目录并将其添加到您的 ~/.emacs~/.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 文件将负责其余的工作。

    关于macos - 如何在 Emacs 的 shell 命令中使用正确的 rbenv Ruby 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15855557/

    111 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com