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

Dav*_*uer 45 emacs r ess r-markdown

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

Bri*_*ggs 31

正在开发的multiode正在/将允许你用R块写入markdown(用于处理knitr).

设置polymode + rmarkdown的说明在README中

它尚未完成,但正在取得进展.另请参阅ess-help邮件列表(gmane archive | mailing list archive)上的讨论


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


ant*_*nio 20

polymodegithub.com/vitoshka/polymode下载zip ,如果你是"git guy",你可以使用:

git clone https://github.com/vitoshka/polymode.git
Run Code Online (Sandbox Code Playgroud)

将此函数添加到您的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))
Run Code Online (Sandbox Code Playgroud)

现在,如果你已经安装了ESS,只需打开你的rmd文件并输入Meta- Xrmd-mode并观看Emacs的美丽.

MELPA用户的更新

polymode来自MELPA使用平面文件结构.当您从Emacs存储库通过M-x list-packages或类似设施安装时,您可以将您的包文件直接放在应该的位置,即:(expand-file-name "~/.emacs.d/elpa"),因此请对以上load-path代码进行注释:

;;  (setq load-path 
;;      (append (list "path/to/polymode/" "path/to/polymode/modes/")
;;          load-path))
Run Code Online (Sandbox Code Playgroud)

  • 当我从 MELPA 下载 `polymode` 时,它会进入我的 Windows 机器 `c:/emacs/.emacs.d/elpa/polymode-20150105.931/` 上的这个路径,但我在里面没有看到 `modes` 文件夹!任何的想法?你能在你的答案中参考 windows 吗,非常感谢。 (2认同)
  • @pavopax:ESS 需要单独设置。完成后,`Mx R` 启动 R 并在块内的 `Cc Cz` 切换到 R 控制台。 (2认同)

Hao*_*eke 10

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

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

(use-package poly-R
  :ensure t
  :pin melpa-stable)
Run Code Online (Sandbox Code Playgroud)

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