2013-05-31 5 views
5

Ich habe R in einem Verzeichnis namens "X: \ alphaAndOmega \ R \ R" installiert. So befindet sich Rterm.exe (32-Bit-Version) in "X: \ alphaAndOmega \ R \ R \ bin \ i386". Ich weiß, dass es kein "Standard-R-Verzeichnis" ist und dass "Standard-R-Verzeichnisse" wie R-3.0.0 leicht von ESS erkannt werden (zumindest wenn ich sie zu meiner PATH-Variable in Windows hinzufüge).ESS findet Rterm.exe nicht unter Windows

Ich habe versucht, meine .emacs-Datei so anzupassen, dass ESS in meinem nicht standardmäßigen Verzeichnis nach Rterm.exe sucht, aber das konnte ich nicht. Ich bin absolut neu in Emacs und ich versuchte, spielen um einige der folgenden Befehle Wird:

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

Aber ich schlug fehl. ESS findet nichts.

Ich benutze Emacs 24.3.1, ESS 13.05 und R 2.15. Im Moment enthält meine .emacs-Datei eine Zeile nur, so dass kein Problem sein sollte:

(require 'ess-site)

Was kann ich tun, um ESS mein Rterm.exe machen finden?

Antwort

4

Es gibt wirklich nur eine Konfigurationseinstellung in ess-site.el; Ich habe das in der Vergangenheit benutzt. Hier ist es von ess-site.el aber beachten Sie, dass es kommentiert-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") 

Und ich nur auf meine Arbeit Maschine überprüft, und es Rterm.exe wird standardmäßig aus dem $PATH gefunden. Ich benutze die Emacs/ESS/AucTeX bundle by Vincent Goulet, die ich von ganzem Herzen empfehlen kann, "es funktioniert einfach."

2

Um ESS auf ein nicht standardmäßiges R-Verzeichnis zu verweisen, setzen Sie die Variable ess-directory-containing-R. (Diese handliche Variable ist ein relativ neues Feature.) Zitiert aus the ESS manual:

Änderungen/Neuerungen in 12,09:

ESS [R]: Unter Windows gibt es jetzt ein neues anpassbare Variable (derzeit namens ess-directory-containing-R), um ESS mitzuteilen, wo nach den ausführbaren Dateien von Rterm.exe suchen soll. Der Name der Variablen und die Werte, die es annehmen kann, sind beide in der Betaversion und können sich ändern. Vor dieser Variable, durchsucht ESS nur in der Standardinstallation Verzeichnis. Wenn diese Variable festgelegt wird, teilt ESS ESS mit, wie die ausführbaren Dateien "Rterm.exe " zu finden sind, wenn sie irgendwo anders installiert werden.

Wenn ich mich richtig erinnere, muss dies vor dem Laden durchgeführt werden ess-site.el; in jedem Fall, dass das, was ich in meiner .emacs-Datei, die alle meine R-Versionen zu finden, eine gute Arbeit tut, die alle unter "C:/R/" gespeichert sind:

(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 - Haben Sie das versucht? Hat es funktioniert? –

1

Einstellen der ess-Verzeichnis enthaltenden-R-Variable hat nicht funktioniert, als ich dieses Problem hatte. Außerdem, als ich eine 'describe-Variable' auf einer anderen Maschine, auf der ein richtig funktionierender ESS-Emacs lief, auf Null gesetzt hatte, war der Wert null, also glaube ich nicht, dass das richtig ist.

Was DID funktioniert, ist die PATH-Variable in der Windows-Umgebung zu setzen, um auf das Verzeichnis zu verweisen, in dem Rterm.exe lebt, und dann Emacs neu zu starten.