ruby - Emacs 在运行编译命令时忽略了我的路径

标签 ruby macos emacs rvm

我正在尝试让编译命令(rake cucumber)在我的 Mac OS X 系统上使用特定的 ruby​​ 版本运行,我目前在终端中使用 rvm 来执行此操作。我的 ~/.MacOSX/environment.plist 中有正确的路径,但 emacs 坚持要在这条路径之前添加,因此使其无用。我也试过:

(when (equal system-type 'darwin)
  (setenv "PATH" (concat "/Users/fearoffish/.rvm/bin:/Users/fearoffish/.rvm/rubies/ruby-1.8.7-p249/bin:/Users/fearoffish/.rvm/gems/ruby-1.8.7-p249/bin:/Users/fearoffish/.rvm/gems/ruby-1.8.7-p249%global/bin:/Users/fearoffish/.rvm/bin"))
  (push "/Users/fearoffish/.rvm/bin" exec-path)
  (push "/Users/fearoffish/.rvm/rubies/ruby-1.8.7-p249/bin" exec-path)
  (push "/Users/fearoffish/.rvm/gems/ruby-1.8.7-p249/bin" exec-path)
  (push "/Users/fearoffish/.rvm/gems/ruby-1.8.7-p249%global/bin" exec-path)
  (push "/Users/fearoffish/.rvm/bin" exec-path))

这是一个 emacs 初学者为了得到我想要的东西而进行的绝望尝试。它仍然在它前面,所以我的路径最终是:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/fearoffish/.rvm/bin:/Users/fearoffish/.rvm/rubies/ruby-1.8.7-p249/bin:/Users/fearoffish/.rvm/gems/ruby-1.8.7-p249/bin:/Users/fearoffish/.rvm/gems/ruby-1.8.7-p249%global/bin

我不希望/usr/bin 和其他人前置,我希望我的 路径在前,emacs 前置路径在最后,我认为这会解决我的问题。

我通过简单地打开 Aquamacs 并运行 meta-x compile 然后运行 ​​echo $PATH 来测试它。

有什么想法吗?

最佳答案

sanityinc 对解决方案的一个小修改(找不到在上面的评论中输入它的方法——只有我吗?)

  • 我对 shell 使用 -l 选项来强制登录 shell(读取 .profile.bash_profile),而不是交互式 shell(仅读取 .bashrc)。
  • 我对返回的路径进行了一些字符串修剪(因为检查显示换行符潜入)。

修改后的代码:

(defun set-exec-path-from-shell-PATH ()
  (let ((path-from-shell 
      (replace-regexp-in-string "[[:space:]\n]*$" "" 
        (shell-command-to-string "$SHELL -l -c 'echo $PATH'"))))
    (setenv "PATH" path-from-shell)
    (setq exec-path (split-string path-from-shell path-separator))))
(when (equal system-type 'darwin) (set-exec-path-from-shell-PATH))

关于ruby - Emacs 在运行编译命令时忽略了我的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2266905/

相关文章:

ruby - 从不同的地方重新提出 ruby 异常

objective-c - Cocoa NSApp 在启动/用户登录后自动启动

emacs - 如何防止 emacs 打开新窗口进行编译输出?

ruby - 如何在 Ruby 中动态改变继承

ruby-on-rails - 进入 Rails 之前要学习的重要 Ruby 概念?

ruby - 如何总结所有哈希值?

objective-c - cocoa 在视频末尾添加图像

database - mac 存储 sqlite3 数据库的默认位置是什么

Emacs 在隐藏缓冲区上 goto-char 后不移动点

emacs - Emacs org-mode 插入的日期不可读