How can I use Emacs ESS mode with R markdown?

前端 未结 3 1320
既然无缘
既然无缘 2021-01-30 04:59

Is there a way to configure Emacs so that it recognizes (and allows execution of) R code chunks within R markdown (.Rmd) files similar to the way it recognizes code chunks in .R

相关标签:
3条回答
  • 2021-01-30 05:35

    Download the zip for polymode from github.com/vitoshka/polymode or, if you are a "git guy", you might use:

    git clone https://github.com/vitoshka/polymode.git
    

    Add this function to your Emacs init file:

    (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))
    

    Now, if you already have ESS installed, just open your rmd file and type Meta-Xrmd-mode and watch the beauty of Emacs.

    Update for MELPA users

    polymode from MELPA uses a flat file structure. When you install from an Emacs repository via M-x list-packages or like facilities, you get your package files straight where they ought to, i.e.: (expand-file-name "~/.emacs.d/elpa"), therefore do comment the above load-path code:

    ;;  (setq load-path 
    ;;      (append (list "path/to/polymode/" "path/to/polymode/modes/")
    ;;          load-path))
    
    0 讨论(0)
  • 2021-01-30 05:49

    polymode is being developed which does/will allow you to write markdown with R chunks (for processing with knitr).

    Instructions for setting up polymode+rmarkdown are in the README

    It is not yet done, but is progressing. See also this discussion on the ess-help mailing list (gmane archive|mailing list archive)


    Update: polymode has been released on MELPA, simplifying the installation process by using emacs' existing package mechanism. See the announcement on the ESS mailing list here.

    0 讨论(0)
  • 2021-01-30 06:00

    The other answers are rather outdated, and polymode now provides a specialized package for working with .Rmd files. Simply use the poly-R package from MELPA which has its source here on Github.

    The following may be added to your init.el or where-ever you use use-package:

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

    For a more detailed use-case involving modifying the default keymaps see this configuration. The documentation describes the default keymaps.

    0 讨论(0)
提交回复
热议问题