【问题标题】:How can I use Emacs ESS mode with R markdown?如何将 Emacs ESS 模式与 R markdown 一起使用?
【发布时间】:2013-04-16 20:16:07
【问题描述】:

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

【问题讨论】:

    标签: r emacs ess r-markdown


    【解决方案1】:

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

    polymode+rmarkdown的设置说明在README

    它还没有完成,但正在进行中。另请参阅 ess-help 邮件列表上的讨论 (gmane archive|mailing list archive)


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

    【讨论】:

      【解决方案2】:

      github.com/vitoshka/polymode 下载polymode 的压缩包,或者,如果您是“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 用户更新

      来自 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))
      

      【讨论】:

      • 非常感谢这段代码。我只想提一下,这仅在 markdown-mode.el 位于 "path/to/" 文件夹中时才有效(请参阅 link)。
      • 当我从 MELPA 下载 polymode 时,它会进入我的 Windows 机器 c:/emacs/.emacs.d/elpa/polymode-20150105.931/ 上的这个路径,但我看不到 modes 文件夹!任何想法?您能否在答案中参考 windows,非常感谢。
      • 如何使用此设置执行 R 代码?我没有看到用于在 Rmd 和 R 缓冲区之间切换、执行代码等的 ESS 菜单
      • @pavopax:ESS 需要单独设置。完成后,M-x R 启动 R 并在块内 C-c C-z 切换到 R 控制台。
      • 关键是“在 R 块内部”,而不仅仅是缓冲区中的任何地方。谢谢!
      【解决方案3】:

      其他答案已经过时了,polymode 现在提供了一个专门的包来处理.Rmd 文件。只需使用poly-Rfrom MELPA,它有它的source here on Github.

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

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

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

      【讨论】:

      • 这行得通。我使用 MELPA 安装了 esspoly-R 软件包,并且(对于我的 Mac)我需要修改我的 emacs exec-path 以使其正常工作
      猜你喜欢
      • 2018-07-12
      • 1970-01-01
      • 2013-12-07
      • 2011-06-08
      • 2018-07-09
      • 1970-01-01
      • 2012-01-13
      • 1970-01-01
      • 2010-11-09
      相关资源
      最近更新 更多