有没有办法配置 Emacs 以便它识别(并允许执行)R markdown (.Rmd) 文件中的 R 代码块,类似于它识别 .Rnw (Sweave) 或 .org (org-mode) 中的代码块的方式文件?
3 回答
polymode正在开发中,它确实/将允许您使用 R 块编写降价(用于处理knitr
)。
设置 polymode+rmarkdown 的说明在README中
它尚未完成,但正在取得进展。另请参阅 ess-help 邮件列表上的讨论(gmane 存档|邮件列表存档)
更新:polymode 已在 MELPA 上发布,通过使用 emacs 现有的包机制简化了安装过程。请在此处查看 ESS 邮件列表中的公告。
polymode
从github.com/vitoshka/polymode下载 zip,或者,如果您是“git 人”,您可以使用:
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
从 MELPA 使用平面文件结构。当您通过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
文件的包。只需使用来自 MELPApoly-R
的包,它的源代码在 Github 上。
以下内容可能会添加到您init.el
或您使用的任何地方use-package
:
(use-package poly-R
:ensure t
:pin melpa-stable)