2013-05-31 17 views
5

Ho installato R in una directory denominata "X: \ alphaAndOmega \ R \ R". Quindi Rterm.exe (versione a 32 bit) si trova in "X: \ alphaAndOmega \ R \ R \ bin \ i386". So che non è una "directory R standard" e che "directory R standard", come R-3.0.0, sono facilmente riconosciute da ESS (almeno se le aggiungo alla mia variabile PATH in Windows).ESS non trova Rterm.exe su Windows

Ho provato a personalizzare il mio file .emacs in un modo, che ESS avrebbe cercato Rterm.exe nella mia directory non standard, ma non ero in grado di farlo. Sono assolutamente nuovi per emacs e ho provato a giocare intorno wird alcuni dei seguenti comandi:

inferior-R-program-name e ess-rterm-version-paths

Ma ho fallito. ESS non trova nulla.

Uso emacs 24.3.1, ESS 13.05 e R 2.15. Al momento il mio file .emacs contiene una sola riga, in modo che non dovrebbe essere un problema:

(require 'ess-site)

Cosa posso fare per rendere ESS trovare il mio Rterm.exe?

risposta

4

C'è davvero solo un'impostazione di configurazione in ess-site.el; L'ho usato in passato. Qui è da ess-site.el ma nota che è commentato-out:

;; 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") 

E ho appena controllato sulla mia macchina di lavoro, e non vi Rterm.exe si trova di default dal $PATH. Io uso il Emacs/ESS/AucTeX bundle by Vincent Goulet che posso consigliare con tutto il cuore come "funziona".

2

Per indirizzare ESS a una directory R non standard, impostare la variabile ess-directory-containing-R. (Questa variabile a portata di mano è una caratteristica relativamente recente.) Citando the ESS manual:

Modifiche/Nuove funzionalità in 12.09:

SSE [R]: In Windows, v'è ora una nuova personalizzabile variabile (attualmente chiamato ess-directory-contenente-R) per dire a ESS dove cercare gli eseguibili Rterm.exe a . Il nome della variabile e i valori di possono essere entrambi in beta e soggetti a modifiche. Prima di questa variabile, ESS cercava solo nella directory di installazione predefinita . L'impostazione di questa variabile ora indica a ESS come trovare gli eseguibili Rterm.exe quando vengono installati altrove.

Se ricordo correttamente, questo deve essere fatto prima di caricare ess-site.el; in ogni caso, che è quello che ho nel mio file .emacs, che fa un lavoro fine di trovare tutte le mie versioni R, che sono tutti memorizzati in "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 - Hai provato questo? Ha funzionato? –

1

impostare la variabile ess-directory contenenti-R non ha funzionato quando ho avuto questo problema. Inoltre, quando ho fatto una "variabile descrittiva" su di essa, su un'altra macchina che aveva un ess-emacs correttamente funzionante, il valore era nullo, quindi non penso che sia giusto.

Quale lavoro DID sta impostando la variabile PATH nell'ambiente Windows in modo che punti alla directory in cui Rterm.exe risiede, quindi riavvia Emacs.