2013-05-31 48 views
5

我在一個名爲「X:\ alphaAndOmega \ R \ R」的目錄中安裝了R。因此,Rterm.exe(32位版本)位於「X:\ alphaAndOmega \ R \ R \ bin \ i386」中。我知道這不是一個'標準的R目錄',而像R-3.0.0這樣的「標準R目錄」很容易被ESS識別(至少如果我將它們添加到Windows中的PATH變量中)。ESS在Windows上找不到Rterm.exe

我試圖以某種方式定製我的.emacs文件,ESS會在我的非標準目錄中查找Rterm.exe,但我無法這樣做。我絕對新的emacs的,我試圖玩弄wird一些下面的命令:

inferior-R-program-nameess-rterm-version-paths

但我失敗了。 ESS找不到任何東西。

我使用emacs 24.3.1,ESS 13.05和R 2.15。此刻我的.emacs文件只包含一個行,所以這不應該是一個問題:

(require 'ess-site)

我能做些什麼,使ESS找到我Rterm.exe?

回答

4

ess-site.el確實只有一個配置設置;我過去曾用過那個。這是ess-site.el但要注意,它被註釋掉:

;; 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  
;;(setq-default inferior-R-program-name "Rterm") ; MS Windows, see below for path 
;;(setq-default inferior-R-program-name "C:\\Program Files\\R\\R-2.5.0\\bin\\Rterm.exe") 

而我只是檢查我的工作機器上,並且有Rterm.exe默認情況下,從$PATH找到。我確實使用Emacs/ESS/AucTeX bundle by Vincent Goulet,我可以全心全意地推薦爲「它只是起作用」。

2

要將ESS指向非標準R目錄,請設置變量ess-directory-containing-R。 (這個方便的變量是一個相對較新的功能。)從the ESS manual引用:在12.09

變化/新功能:

ESS [R]:在Windows上,現在有一個新的自定義變量 (目前稱爲包含ess-directory-R)來告訴ESS 尋找Rterm.exe可執行文件的位置。變量的名稱和它可以採用的值都處於測試階段,並且可能會發生變化。之前 這個變量,ESS只搜索默認安裝目錄 。現在設置此變量將告知ESS如何在其他地方安裝時找到Rterm.exe 可執行文件。

如果我沒有記錯,這需要在加載之前完成ess-site.el;在這就是我在我的.emacs文件,該文件確實找到了我所有的R版本中,這是"C:/R/"下的所有存儲的一個很好的工作,任何情況下:

(setq ess-directory-containing-R "c:") 
;; Add to list of prefixes recognized by ESS. 
;; Matching versions will appear after doing M-x R <TAB> <TAB> 
(setq ess-r-versions '("R-1" "R-2" "R-3" "R-current" "R-devel" "R-patched")) 
(load "C:/Program Files/GNU Emacs 23.3/site-lisp/ess/lisp/ess-site.el") 

;; Set default R version, (i.e. the one launched by typing M-x R <RET>) 
(setq inferior-R-program-name "c:/R/R-current/bin/i386/Rterm.exe") 
+0

@Wolfgang - 你嘗試過嗎?它有用嗎? –

1

設置含ESS-目錄-R變量當我有這個問題時沒有工作。此外,當我在其上做了一個「描述變量」時,在另一臺機器上有一個正常工作的ess-emacs,價值爲零,所以我認爲這是不對的。

DID的工作是將Windows環境中的PATH變量設置爲指向Rterm.exe所在的目錄,然後重新啓動emacs。