如何在emacs中指定由ESS会话打开的R版本?

时间:2012-09-25 00:28:49

标签: r emacs environment-variables ess

当我想在emacs中打开R会话时,我使用M-x R

但是,我们的服务器在/ usr / bin / R中都有R 2.12,在/ usr / local / bin / R中有R 2.15。实际上,如果我问whereis R,我会得到以下内容:

$ whereis R
R: /usr/bin/R /usr/local/bin/R /usr/local/bin/R2.15 /usr/local/bin/R2.12 
/usr/local/bin/R2.7 /usr/include/R /usr/share/R /usr/share/man/man1/R.1.gz

当我尝试从.bashrc导出“R_HOME = / usr / local / bin / R2.15”时,emacs说“警告:忽略R_HOME的环境值”

有没有办法选择推出哪个R实例?目前,当我在命令行输入R时,即使M-x R启动2.12,也会启动2.15。

1 个答案:

答案 0 :(得分:4)

非ESS的答案是确保您的PATH完全相同,并且您想要的版本是第一位的。您启动的shell与涉及Emacs的启动之间似乎存在差异。您可以使用PATH从shell启动Emacs。

ESS答案可能涉及设置一些魔术变量......在Windows上,我们经常直接设置二进制文件。这里的lisp代码说:

;; If you wish to call other versions of R on a Unix system, ESS
;; should auto-detect other versions of R, according to matches to the
;; variable `ess-r-versions' as described in its docstring.  Consider
;; changing that variable rather than changing inferior-R-program-name
;; if your version of R is not already auto-detected.
;;(setq-default inferior-R-program-name "R")        ; unix systems

所以它应该工作。我只保留R在我的PATH中,另一个在其中,所以我不能在这里为你测试。但请尝试摆弄ess-r-version和/或inferior-R-program-name