我知道Emacs有一个允许在RMarkdown中编码的多代码包。但是,似乎Spacemacs仍然缺少等效的多边形层。
我一直试图将它直接安装到Spacemacs中,但没有成功。因此我的问题是:有没有办法在Spacemacs中编辑RMarkdown文件(不是普通的Emacs)。
答案 0 :(得分:3)
您可以将包添加到spacemacs中,方法是将其添加到dotspacemacs-additional-packages
中的.spacemacs
:
dotspacemacs-additional-packages '(polymode poly-R poly-noweb poly-markdown)
重新启动后,应自动安装软件包,您可能希望在dotspacemacs/user-config ()
中设置其他一些选项,例如类似的东西:
(add-to-list 'auto-mode-alist '("\\.md" . poly-markdown-mode))
(add-to-list 'auto-mode-alist '("\\.Snw" . poly-noweb+r-mode))
(add-to-list 'auto-mode-alist '("\\.Rnw" . poly-noweb+r-mode))
(add-to-list 'auto-mode-alist '("\\.Rmd" . poly-markdown+r-mode))
编辑:
polymode
进行了返工。
答案 1 :(得分:0)
Spacemacs没有正式的polymode
层,但是我在GitHub上的随机配置中发现了一些实现。这是一个对我有用的东西:
;;; packages.el --- polymode layer packages file for Spacemacs.
;;
;; Copyright (c) 2012-2016 Sylvain Benner & Contributors
;;
;; Author: Walmes Zeviani & Fernando Mayer
;; URL: https://github.com/syl20bnr/spacemacs
;;
;; Layer retrieved from here:
;; https://github.com/MilesMcBain/spacemacs_cfg/blob/master/private/polymode/packages.el
;;
;;; Code:
(defconst polymode-packages
'(polymode
poly-R
poly-markdown))
(defun polymode/init-poly-R ())
(defun polymode/init-poly-markdown ())
(defun polymode/init-polymode ()
(use-package polymode
:mode (("\\.Rmd" . Rmd-mode))
:init
(progn
(defun Rmd-mode ()
"ESS Markdown mode for Rmd files"
(interactive)
(require 'poly-R)
(require 'poly-markdown)
(R-mode)
(poly-markdown+r-mode))
))
)
;;; packages.el ends here
可以使用几种方法来处理私有自定义层,但是一种简单易行的方法是...
packages.el
中名为~/.emacs.d/layers/private/polymode/
的文件。 polymode
添加到您的dotspacemacs/layers
列表中,例如(defun dotspacemacs/layers ()
ess
polymode
python
...
polymode
软件包。 使用此方法,您不必使用(add-to-list 'auto-mode-alist...
来声明.Rmd
文件应使用的特定模式,因为它是在图层中定义的。我从here中检索了该特定层。我也尝试过一两个,但是它们对我没有用。