如何在R markdown中使用Emacs ESS模式?

有没有一种方法可以configurationEmacs,以便识别(并允许执行)R markdown(.Rmd)文件中的R代码块,类似于识别.Rnw(Sweave)或.org(org-mode)代码块的方式。文件?

polymode正在开发中,它允许你用R块(用knitr加工)编写降价。

README中有关于设置polymode + rmarkdown的说明

它尚未完成,但正在进步。 另请参阅关于ess-help邮件列表的讨论( gmane archive | 邮件列表存档 )


更新:MELPA上已经发布了polymode,通过使用emacs现有的包装机制来简化安装过程。 在这里查看ESS邮件列表上的公告 。

从github.com/vitoshka/polymode下载polymode的zip 文件 ,如果你是“git人”,你可以使用:

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

将此函数添加到Emacs init文件中:

 (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文件并inputMetaX rmd-mode并观看Emacs的美丽。

更新MELPA用户

MELPA的polymode使用平面文件结构。 当您通过Mx list-packages或类似工具从Emacs存储库进行安装时,您可以将包文件直接放在应该放置的地方,即: (expand-file-name "~/.emacs.d/elpa") ,上面的load-path代码:

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