2013-05-31 33 views
5

Tôi đã cài đặt R trong một thư mục có tên "X: \ alphaAndOmega \ R \ R". Vì vậy, Rterm.exe (phiên bản 32-bit) nằm trong "X: \ alphaAndOmega \ R \ R \ bin \ i386". Tôi biết rằng nó không phải là một 'R-thư mục chuẩn' và rằng "tiêu chuẩn R-thư mục", như R-3.0.0 được dễ dàng nhận ra bởi ESS (ít nhất là nếu tôi thêm chúng vào biến PATH của tôi trong Windows).ESS không tìm thấy Rterm.exe trên windows

Tôi đã thử tùy chỉnh tệp .emacs của mình theo cách mà ESS sẽ tìm Rterm.exe trong thư mục không chuẩn của tôi, nhưng tôi không thể làm như vậy. Tôi hoàn toàn mới để emacs và tôi đã cố gắng chơi xung quanh wird một số các lệnh sau:

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

Nhưng tôi đã thất bại. ESS không tìm thấy gì cả.

Tôi sử dụng các emacs 24.3.1, ESS 13.05 và R 2.15. Tại thời điểm này tập emacs của tôi chứa chỉ một dòng, do đó không phải là một vấn đề:

(require 'ess-site)

tôi có thể làm gì để làm cho ESS tìm Rterm.exe của tôi?

Trả lời

4

Thực sự chỉ có một cài đặt cấu hình trong ess-site.el; Tôi đã sử dụng cái đó trong quá khứ. Dưới đây là từ ess-site.el nhưng lưu ý rằng nó được nhận xét ra:

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

Và tôi chỉ kiểm tra trên máy tính công việc của tôi, và có Rterm.exe được tìm thấy theo mặc định từ $PATH. Tôi sử dụng các Emacs/ESS/AucTeX bundle by Vincent Goulet mà tôi có thể hết lòng đề nghị là "nó chỉ hoạt động."

2

Để trỏ ESS vào thư mục R không chuẩn, hãy đặt biến ess-directory-containing-R. (Biến hữu ích này là một tính năng tương đối gần đây.) Trích dẫn từ the ESS manual:

Changes/Tính năng mới trong 12.09:

ESS [R]: Trên Windows, bây giờ có một mới tùy biến (hiện tại được gọi là ess-directory-contains-R) để nói cho ESS biết nơi để tìm các tập tin thực thi Rterm.exe. Tên của biến và các giá trị có thể mất cả trong phiên bản beta và có thể thay đổi. Trước biến này, ESS chỉ tìm kiếm trong thư mục cài đặt mặc định . Thiết lập biến này bây giờ cho ESS biết cách tìm Rterm.exe thực thi khi chúng được cài đặt ở nơi khác.

Nếu tôi nhớ chính xác, điều này cần được thực hiện trước khi tải ess-site.el; trong bất kỳ trường hợp đó là những gì tôi có trong tập tin emacs của tôi, mà làm một công việc tốt của việc tìm kiếm tất cả các phiên bản của tôi R, tất cả được lưu trữ dưới "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 - Bạn đã thử cái này chưa? Nó có hoạt động không? –

1

Thiết lập ess-thư mục chứa-R biến không làm việc khi tôi gặp vấn đề này. Hơn nữa, khi tôi đã làm một 'mô tả biến' trên nó, trên một máy khác mà có một ess-emacs làm việc đúng vào nó, giá trị là nil, vì vậy tôi không nghĩ rằng đó là đúng.

Công việc DID đang đặt biến PATH trong môi trường Windows để trỏ đến thư mục Rterm.exe đang sinh sống và sau đó khởi động lại các emac.