有没有一种方法可以配置Emacs,使其识别(并允许执行)R markdown(.Rmd)文件中的R代码块,类似于它识别.Rnw(Sweave)或.org(org-mode)文件中的代码块?
Polymode正在开发中,它可以/将允许您编写带有R代码块的Markdown文档(用于使用knitr
处理)。
设置polymode+rmarkdown的说明在README中。
尽管尚未完成,但仍在不断进展。请参见ess-help邮件列表上的这个讨论(gmane archive|mailing list archive)。
更新:Polymode已在MELPA发布,通过使用emacs现有的包机制简化了安装过程。在ESS邮件列表上此处查看公告。
从github.com/vitoshka/polymode下载polymode
的zip文件,或者如果你是“git guy”,也可以使用:
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-Xrmd-mode
,然后欣赏Emacs的美丽。
MELPA中的polymode
使用平面文件结构。 当您通过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))
polymode
提供了一个专门用于处理.Rmd
文件的软件包。只需使用来自MELPA的poly-R
软件包,它在Github上的源码中可以找到。
以下内容可添加到您的init.el
文件或使用use-package
的任何位置:
(use-package poly-R
:ensure t
:pin melpa-stable)
ess
和poly-R
包,但是(对于我的Mac)我需要修改我的emacs exec-path
才能使它们正常工作。 - Dave X
"path/to/"
文件夹中有 markdown-mode.el 才能正常工作(请参见链接)。 - giordanopolymode
时,它会被安装到我的Windows机器上的这个路径下:c:/emacs/.emacs.d/elpa/polymode-20150105.931/
,但是我在其中没有看到modes
文件夹!你有什么想法吗?如果你的回答中能涉及到Windows系统,我将非常感激。 - doctorateM-x R
启动R,并在块内使用C-c C-z
切换到R控制台。 - antonio