53

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

4

3 回答 3

37

polymode正在开发中,它确实/将允许您使用 R 块编写降价(用于处理knitr)。

设置 polymode+rmarkdown 的说明在README中

它尚未完成,但正在取得进展。另请参阅 ess-help 邮件列表上的讨论(gmane 存档|邮件列表存档


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

于 2013-04-23T18:02:41.017 回答
24

polymodegithub.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))
于 2014-04-27T17:03:54.360 回答
13

其他答案相当过时,polymode现在提供了一个专门用于处理.Rmd文件的包。只需使用来自 MELPApoly-R的包,它的源代码在 Github 上。

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

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

有关修改默认键盘映射的更详细用例,请参阅此配置。该文档描述了默认的键盘映射。

于 2020-01-15T11:38:18.197 回答