针织衫Markdown在Emacs中突出显示?


111

在Emacs中打开时,是否对现有工具或新工具进行了任何修改,以使针织降价文档中的R代码块语法突出显示(彩色)?

我正在查看的编织块是[```]内部包含R代码的三反引号块。

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

- 具有Emacs 23的Ubuntu 12.04

emacs --version
GNU Emacs 23.3.1

1.多模

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

我正在尝试使多模语法高亮显示我的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)

评估缓冲区:

Cannot open load file: color

- 使用Emacs 24的CentOS

emacs --version
GNU Emacs 24.2.1

1.正确安装Polymode

打开一个Rmd文件,M-x polymode-minor-mode语法高亮不变。


emacs --version
GNU Emacs 24.3.1

1.正确安装Polymode

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

在此处输入图片说明

在此处输入图片说明

第二幅图像恰好是在knitr块之前键入Return之后。


10
我很想知道答案。一直有传言说ESS专家会解决这个问题,但是我还没有看到它……
Ben Bolker

3
我家里有些东西基本可以用。它基于Mumamo模式和Markdown模式。我必须对Mumamo模式进行一些更改才能使其正常运行,在这里进行了解释:bugs.launchpad.net/nxhtml/+bug/626039/comments/5。回家后,我会在这里跟一个答案,并记住我的所作所为。
艾里克·艾弗森

4
Vitalie的怎么样polymodegithub.com/vitoshka/polymode
daroczig

3
@daroczig-有趣 在README的警告中,任何想法他所说的“没有识字的编程后端”是什么意思部分?
乔什·奥布莱恩

4
@ JoshO'Brien在Vitalie的ess-help公告中,他阐明了他的意思:“ Rnw只是一种多模式。我对读写程序后端的理解是一种可以将文件处理/转换为其他文件的工具。例如knitr或org-这些天,我将把ess-swv-weave和ess-swv-PDF钩在与R相关的多模映射中。由于编织器足够聪明,足以识别正在处理的内容,因此暂时应该可以。”
艾里克·艾弗森

Answers:


3

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

通过ESS在Emacs中进行编织降价


抱歉,此引用有误。当前,Emacs-ESS尚未突出显示 Rmd文档,甚至没有简单的markdown(顺便说一句,您的链接文章并不这么认为)。至于前者,您需要多模式,而后者则需要markdown.el。此外,如果您只想将ESS引擎从Sweave切换到knitr(不突出显示!),则无需经历本文的所有复杂操作,只需将(setq ess-swv-processor 'knitr)init文件添加进去即可。
antonio

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. polymode.zip解压缩到保存Emacs资料的目录中,例如:

    ~\conf\emacs

并将结果polymode-master目录更改为polymode

  1. 将其添加到您的init文件中(如果您在上面使用了其他名称,请在下面相应地更改名称):

    ;; 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. Meta+ rmd打开Rmd文件或将其设置为<!-- Local Variables: -->
    ...时,您的工作效率将发生巨大变化。

PS
不要忽略最后的elisp线。它将允许正确保存降价促销。否则,当您重新打开文档时,您会感到不愉快。

Windows用户注意事项

如果您是Linux专家,请跳过此步骤,但是,尽管有提到Ubuntu的问题,但我的回答也完全适用于Windows Emacs。就以下方面而言:

  • 步骤2)您将在以下位置提取polymode.zip

    %USERPROFILE%\conf\emacs

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

    %USERPROFILE%\Documents\conf\emacs
  • 步骤3)如果在步骤2)中使用了path %USERPROFILE%\Documents\conf\emacs,则从以下位置相应地更改第一行代码:

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

    (注意斜线):

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

    在两种情况下(带有和不带有“我的文档”),您都可能更喜欢Windows风格:

    (setq MY-EMACS (substitute-in-file-name "$USERPROFILE/Documents/conf/emacs")) 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.