Как я могу использовать режим Emacs ESS с R-уценкой?

Есть ли способ настроить Emacs так, чтобы он распознавал (и позволяет выполнять) фрагменты кода R в файлах R markdown (.Rmd), похожих на способ распознавания фрагментов кода в .Rnw(Sweave) или .org(org -mode)?

2 ответа

polymode, который делает/позволит вам писать уценку с R-фрагментами (для обработки с помощью knitr).

Инструкции по настройке polyode + rmarkdown приведены в README

Это еще не сделано, но прогрессирует. См. Также эту дискуссию о списке рассылки ess-help (gmane archive рассылка архив списка)

Обновление: на MELPA был выпущен полимод, упрощающий процесс установки с использованием существующего механизма пакетов emacs. См. Объявление в списке рассылки ESS здесь.


Загрузите zip для polymode из github.com/vitoshka/polymode или, если вы являетесь "парнем w20", вы можете использовать:

git clone https://github.com/vitoshka/polymode.git

Добавьте эту функцию в файл инициализации Emacs:

(defun rmd-mode ()
 "ESS Markdown mode for rmd files"
 (interactive)
 (setq load-path 
 (append (list "path/to/polymode/" "path/to/polymode/modes/")
 load-path))
 (require 'poly-R)
 (require 'poly-markdown) 
 (poly-markdown+r-mode))

Теперь, если у вас уже установлен ESS, просто откройте свой файл rmd и введите Meta - X rmd-mode и посмотрите красоту Emacs.

Обновление для пользователей MELPA

polymode от MELPA использует плоскую структуру файла. Когда вы устанавливаете из репозитория Emacs через M-x list-packages или подобные объекты, вы получаете свои файлы пакетов прямо там, где они должны, т.е.: (expand-file-name "~/.emacs.d/elpa"), поэтому прокомментируйте приведенный выше код load-path:

;; (setq load-path 
;; (append (list "path/to/polymode/" "path/to/polymode/modes/")
;; load-path))

licensed under cc by-sa 3.0 with attribution.