如何使用带有R markdown的Emacs ESS模式?

时间:2013-04-23 14:44:08

标签: r emacs ess r-markdown

有没有办法配置Emacs,以便它识别(并允许执行)R markdown(.Rmd)文件中的R代码块,类似于它识别.Rnw(Sweave)或.org(org)中的代码块的方式-mode)文件?

3 个答案:

答案 0 :(得分:31)

正在开发

polymode,它允许您使用R块写入markdown(用knitr进行处理)。

设置polyode + rmarkdown的说明在README

尚未完成,但正在取得进展。另请参阅ess-help邮件列表(gmane archive | mailing list archive

上的讨论

更新:已在MELPA上发布了polymode,通过使用emacs的现有包机制简化了安装过程。请参阅announcement on the ESS mailing list here

答案 1 :(得分:20)

github.com/vitoshka/polymode下载polymode的邮政编码,如果您是" git guy",则可以使用:

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文件并输入 Meta - X rmd-mode并观看Emacs的美丽。

MELPA用户更新

MELPA的

polymode使用 flat 文件结构。当您通过M-x 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))

答案 2 :(得分:5)

其他答案已经过时了,polymode现在提供了用于处理.Rmd文件的专用程序包。只需使用from MELPApoly-R软件包source here on Github.

以下内容可能会添加到您的init.el或您使用use-package的任何位置:

(use-package poly-R
  :ensure t
  :pin melpa-stable)

有关涉及修改默认键映射的更详细的用例,请参见this configurationdocumentation describes是默认键盘映射。