spacemacs ess knitr不适用于Rmd文件

时间:2017-05-24 04:57:48

标签: r ess spacemacs

我真的想通过ess层从RStudio切换到Spacemacs。但是我无法让它发挥作用。我的dotfile中有以下内容:

dotspacemacs-configuration-layers
 '(
   html

 ;; ----------------------------------------------------------------
 ;; Example of useful layers you may want to use right away.
 ;; Uncomment some layer names and press <SPC f e R> (Vim style) or
 ;; <M-m f e R> (Emacs style) to install them.
 ;; ----------------------------------------------------------------
 markdown
 helm
 ess
 auto-completion
 better-defaults
 emacs-lisp
 git
 polymode
 mu4e
 ;; markdown
 ;; (shell :variables
 org 
 ;;        shell-default-height 30
 ;;        shell-default-position 'bottom)
 spell-checking
 syntax-checking
 ;; version-control
 )

我在我的.emacs.d私人文件夹中有以下packages.el,感谢来自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

;;; Code:

(defconst polymode-packages
 '(polymode))

(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

语法高亮显示和代码完成等工作正常但如果我尝试将代码块发送到REPL,我会得到'错误的类型参数stringp nil'错误与Rmd和Rmv文件。

emacs 25.2.1 with spacemacs

mac和linux上的全新安装,没有加载其他配置。自己的.emacs已被删除

某些功能似乎有效但不像他们应该的那样eval-buffer只会将当前代码块发送到REPL

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

让它与Rmd一起使用对我来说有点棘手。您是否尝试使用简单的.R文件来查看它是否有效?

这是我目前在mi .emacs文件中为Rmd文件提供的内容

;; MARKDOWN
(add-to-list 'auto-mode-alist '("\\.md" . poly-markdown-mode))

;; R modes
(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
(setq load-path (append '("/home/fer/.emacs.d/elpa/polymode-20170307.322"
"/home/farce/.emacs.d/polymode/modes") load-path))

(require 'poly-R)
(require 'poly-markdown)
(add-to-list 'auto-mode-alist '("\\.Rmd" . poly-markdown+r-mode))