2009-07-10 42 views
6

Có chế độ emacs có thể sử dụng nào cho Rscript không?Có chế độ Emacs cho Rscript không?

(Rscript là kịch bản front-end cho ngôn ngữ R.)

Nếu tôi gõ này:

#!/usr/bin/Rscript 
print(commandArgs(TRUE)) 

và làm indent trong ESS R-mode nó indents dòng đầu tiên như điên , vì nó thấy nó là một nhận xét:

      #!/usr/bin/Rscript 
print(commandArgs(TRUE)) 

Trả lời

1

Không có, nhưng bạn có thể buộc Rscript của bạn vào chế độ chỉnh sửa R bằng cách làm cho dòng thứ hai của giao diện tập tin như thế này: (. Thông tin chi tiết here)

# -*- mode: R -*- 

+2

Ngoài ra, nếu bạn kết thúc chúng .R (lựa chọn của tôi cho các tệp R bình thường) hoặc .r (lựa chọn của tôi cho các tập lệnh littler hoặc Rscript ') chế độ có xu hướng được gán tự động. –

0

Hãy thử shell-script-mode - với một số notes on customized indentation

Nó thụt lề mã của bạn tốt cho tôi.

+0

Bất kỳ lý do gì cho việc bỏ phiếu bằng lái xe xuống? Như tôi đã nói, những gì tôi liên kết để sửa chữa sự thụt lề xấu mà OP phàn nàn; nếu điều này không hữu ích, vui lòng bỏ qua. Nếu sai hoặc có hại, downvote - nhưng làm mọi người lịch sự giải thích tại sao nó sai. –

2

Tính phiên bản 5.9, ESS sẽ nhận ra các tập lệnh sử dụng trình thông dịch Rscript hoặc litter; xem http://ess.r-project.org/Manual/ess.html#New-features.

Để tham khảo, để gán một chế độ cho một thông dịch viên, hãy sử dụng biến biến chế độ phiên dịch. Ví dụ:

(add-to-list 'interpreter-mode-alist '("Rscript" . r-mode)) 

Bất kỳ tệp nào có dòng đầu tiên như "#!/Usr/bin/Rscript" sẽ được nhận dạng là chế độ r.

0

Nếu bạn chỉ muốn nhận xét một dòng, hãy sử dụng "##" thay vì "#". Double # sẽ đặt dòng ở đúng vị trí.

+1

Đúng, và một điều hữu ích cần biết. Tuy nhiên, trong trường hợp này, dòng đầu tiên được yêu cầu bắt đầu bằng '#!' Để báo cho shell biết đó là kiểu kịch bản gì. – Aaron

Các vấn đề liên quan