knitr Markdown在Emacs中突出显示?

时间:2013-05-15 14:09:23

标签: r emacs syntax-highlighting knitr

在Emacs中打开时,是否会修改现有工具或新工具,以便在knitr降价文档中对R代码的语法高亮(颜色)块进行修改?

我正在看的knitr块是三重反引号块[```],里面包含R代码。

编辑:到目前为止我尝试过的事情:

- Ubuntu 12.04与Emacs 23

emacs --version
GNU Emacs 23.3.1

1。 Polymode

https://github.com/vitoshka/polymode/issues/3

我正在尝试使用alphaode语法突出显示我的Rmd文件,但它抱怨'颜色'加载文件:

cd ~/.emacs.d
git clone https://github.com/vitoshka/polymode.git

在我的.emacs文件中:

(add-to-list 'load-path "/home/avilella/.emacs.d/polymode/")
(add-to-list 'load-path "/home/avilella/.emacs.d/polymode/modes/")

;; Require any polymode bundles that you are interested in:

(require 'poly-R)
(require 'poly-markdown)

EVAL-缓冲液:

Cannot open load file: color

使用Emacs 24

- CentOS

emacs --version
GNU Emacs 24.2.1

1。聚合模式安装正确

打开Rmd文件M-x polymode-minor-mode,不要更改语法高亮显示。


emacs --version
GNU Emacs 24.3.1

1。聚合模式安装正确

打开一个Rmd文件,M-x poly-markdown+r-mode,一些语法高亮显示开始出现,但我需要手动修改每个三重标记代码块中的测试,以便完全显示语法。

Enter image description here

Enter image description here

第二张图片就是在编织块之前输入Return后。

2 个答案:

答案 0 :(得分:3)

这可能会有所帮助:http://sjp.co.nz/posts/emacs-ess-knitr/

通过ESS在Emacs中进行Knitr降价

答案 1 :(得分:2)

您的问题

首先,您说您拥有GNU Emacs 23.3.1,但在polymode readme.md中,它显示为:

  

使用Emacs 24.3.1和24.4.5进行测试。

至于你的错误:"无法打开加载文件:颜色",在polymode.el中,有一行:

(require 'color)

此软件包位于Emacs 24中,但您的版本可能会错过。

解决方案

  1. 升级到最近(因此支持)的Emacs版本。

  2. 在保存Emacs材料的目录中解压缩polymode.zip,例如:

    ~\conf\emacs
    
  3. 并将生成的polymode-master目录更改为polymode

    1. 在您的初始文件中添加此项(如果您使用上述不同的名称,请相应更改以下名称):

      ;; Just an Emacs personal dir containing polymode packages etc.
      (setq MY-EMACS  "~/conf/emacs") 
      
      (defun my-emacs  (subfolder)
      "Get path to personal dir + subfolder"
      (concat (expand-file-name MY-EMACS) "/" subfolder))
      
      ;; ESS Markdown
      ;; -------------
      (defun rmd-mode ()
        "ESS Markdown mode for rmd files"
        (interactive)
        (setq load-path 
          (append (list (my-emacs "polymode/") 
                    (my-emacs "polymode/modes/"))
              load-path))
        (require 'poly-R)
        (require 'poly-markdown)
        (poly-markdown+r-mode))
      
      ;; Wrap line in markdown. Comment if you don't dislike words cut in the middle
      (add-hook 'markdown-mode-hook (lambda () (visual-line-mode 1)))
      
      ;; Let you use markdown buffer easily
      (setq ess-nuke-trailing-whitespace-p nil)  
      
    2. 当Rmd文件打开或在rmd中设置模式时,
    3. Meta + <!-- Local Variables: --> ......享受生产力的巨大变化。

    4. <强> PS
      不要忽视最后的elisp线。它将允许正确保存降价。否则,当你重新打开你的文档时,你会有不愉快的意外。

      Windows用户注释

      如果你是一个Linux人员,请跳过这个,但是,尽管提到了Ubuntu的问题,我的答案也完全适用于Windows Emacs。只是关于:

      • 步骤2)您将在{

        >中提取polymode.zip

        %USERPROFILE%\conf\emacs
        

        正如您所猜测的,环境变量%USERPROFILE%包含用户配置文件目录的路径。如果您不确定它是什么,请在CLI提示符下执行set USERPROFILE 作为Windows用户,您可能习惯于在My Documents中存储内容。在那种情况下你的目标将是:

        %USERPROFILE%\Documents\conf\emacs
        
      • 步骤3)如果在步骤2)中您使用了路径%USERPROFILE%\Documents\conf\emacs,请相应地更改第一个代码行:

        (setq MY-EMACS  "~/conf/emacs") 
        

        to(注意斜杠):

        (setq MY-EMACS  "~/Documents/conf/emacs") 
        

        在这两种情况下(有和没有&#34;我的文档&#34;),您可能更喜欢Windows风格:

        (setq MY-EMACS (substitute-in-file-name "$USERPROFILE/Documents/conf/emacs"))