我知道Emacs有允许用RMarkdown编码的多模式包。然而,似乎Spacemacs仍然缺少多模层的等价物。
我一直在尝试将其直接安装到Spacemacs中,但没有成功。因此我的问题是:有没有办法在Spacemacs (而不是普通的Emacs)中编辑RMarkdown文件?
发布于 2017-09-23 23:51:19
您可以通过将包添加到.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重做了一次。
发布于 2019-11-17 10:04:56
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有几种方法可以使用这样的私有自定义层,但一种简单直接的方法是...
~/.emacs.d/layers/private/polymode/中名为packages.el的文件。polymode添加到您的dotspacemacs/layers列表中,例如(defun dotspacemacs/layers ()
ess
polymode
python
...polymode包应该会安装。使用这种方法,您不应该使用(add-to-list 'auto-mode-alist...来声明.Rmd文件应该使用的特定模式,因为它是在层中定义的。我从here中检索到了这个特定的层。我也尝试了另外一两个,但它们对我都不起作用。
https://stackoverflow.com/questions/46066632
复制相似问题