首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法在Spacemacs中使用Rmarkdown?

有没有办法在Spacemacs中使用Rmarkdown?
EN

Stack Overflow用户
提问于 2017-09-06 12:06:48
回答 2查看 1.2K关注 0票数 5

我知道Emacs有允许用RMarkdown编码的多模式包。然而,似乎Spacemacs仍然缺少多模层的等价物。

我一直在尝试将其直接安装到Spacemacs中,但没有成功。因此我的问题是:有没有办法在Spacemacs (而不是普通的Emacs)中编辑RMarkdown文件?

EN

回答 2

Stack Overflow用户

发布于 2017-09-23 23:51:19

您可以通过将包添加到.spacemacs中的dotspacemacs-additional-packages来将包添加到spacemacs中

代码语言:javascript
复制
dotspacemacs-additional-packages '(polymode poly-R poly-noweb poly-markdown)

重新启动后,软件包应该会自动安装,您可能希望在dotspacemacs/user-config ()中设置一些其他选项,例如:

代码语言:javascript
复制
(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重做了一次。

票数 3
EN

Stack Overflow用户

发布于 2019-11-17 10:04:56

Spacemacs没有官方的polymode层,但我在GitHub上找到了几个随机配置的实现。这里有一个对我有效的方法:

代码语言:javascript
复制
;;; 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

有几种方法可以使用这样的私有自定义层,但一种简单直接的方法是...

  1. 将上面的代码另存为~/.emacs.d/layers/private/polymode/中名为packages.el的文件。
  2. polymode添加到您的dotspacemacs/layers列表中,例如

代码语言:javascript
复制
(defun dotspacemacs/layers ()
  ess
  polymode
  python
  ...

  1. 重新启动Emacs,polymode包应该会安装。

使用这种方法,您不应该使用(add-to-list 'auto-mode-alist...来声明.Rmd文件应该使用的特定模式,因为它是在层中定义的。我从here中检索到了这个特定的层。我也尝试了另外一两个,但它们对我都不起作用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46066632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档