ChatGPT解决这个技术问题 Extra ChatGPT

knitr Markdown 在 Emacs 中突出显示?

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

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

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

- Ubuntu 12.04 与 Emacs 23

emacs --version
GNU Emacs 23.3.1

1. 多模

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

我试图让 polymode 语法高亮我的 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

- CentOS 使用 Emacs 24:

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,开始出现一些语法高亮显示,但我需要手动修改每个三引号代码块中的测试,以使其完全显示语法。

https://i.stack.imgur.com/bHbBY.png

https://i.stack.imgur.com/a6pVA.png

第二张图片是在 knitr 块之前键入 Return 之后。

我很想知道答案。一直有传言说 ESS 家伙会解决这个问题,但我还没有看到......
我家里有一些基本上可以工作的东西。它基于 mumamo-mode 和 markdown-mode。不过,我必须对 mumamo-mode 进行一些更改才能使其正常工作,此处解释为:bugs.launchpad.net/nxhtml/+bug/626039/comments/5。回到家后,我会在这里跟进一个答案,并记住我做了什么。
维塔莉的polymode怎么样:github.com/vitoshka/polymode
@daroczig——有趣。知道他在自述文件的警告中所说的“没有识字的编程后端”是什么意思!部分?
@JoshO'Brien 在 Vitalie 的 ess-help 公告中,他澄清了他的意思:“Rnw 只是一个多模态。我所说的文学编程后端是一种可以将文件处理/转换成其他东西的工具。就像 knitr 或 org-模式。这些天,我将把 ess-swv-weave 和 ess-swv-PDF 挂在与 R 相关的多模式地图中。暂时应该没问题,因为 knitr 足够聪明,可以识别它正在处理的东西。

p
priyolahiri

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

通过 ESS 在 Emacs 中进行 Knitr 降价


对不起,这个参考是错误的。目前,Emacs-ESS 没有 highlighting 用于 Rmd 文档甚至是简单的降价(顺便说一下,您的链接文章没有这样声明)。至于前者,您需要 polymode,而后者则需要 markdown.el。此外,如果您只想将 ESS 引擎从 Sweave 切换到 knitr(无需突出显示!),则无需阅读本文的所有复杂内容,只需在您的 init 文件中添加 (setq ess-swv-processor 'knitr) 即可。
a
antonio

你的问题

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

使用 Emacs 24.3.1 和 24.4.5 测试。

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

(require 'color)

这个包在 Emacs 24 中,但它可能会在你的版本中丢失。

解决方案

升级到 Emacs 的最新(因此受支持)版本。将 polymode.zip 解压到保存 Emacs 材料的目录中,例如:~\conf\emacs

并将生成的 polymode-master 目录更改为 polymode

将此添加到您的初始化文件中(如果您在上面使用了不同的名称,请相应地更改下面的名称):;;只是一个包含 polymode 包等的 Emacs 个人目录。 (setq MY-EMACS "~/conf/emacs") (defun my-emacs (subfolder) "Get path to personal dir + subfolder" (concat (expand-file-name MY- EMACS) "/" 子文件夹)) ;; ESS 降价;; ------------- (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)) ;;在降价中换行。如果你不喜欢中间被剪掉的单词,请评论 (add-hook 'markdown-mode-hook (lambda () (visual-line-mode 1))) ;;让你轻松使用 Markdown 缓冲区 (setq ess-nuke-trailing-whitespace-p nil) Meta+rmd 当 Rmd 文件打开或在 中设置模式 ... 享受戏剧性改变你的生产力。

PS 不要忽略最后一条 elisp 行。它将允许正确保存降价。否则,当您重新打开文档时,您会遇到令人不快的意外。

致 Windows 用户的注意事项

如果您是 Linux 人,请跳过此步骤,但是,尽管问题提到了 Ubuntu,但我的回答也完全适用于 Windows Emacs。只是关于:

第 2 步)您将提取 polymode.zip 到:%USERPROFILE%\conf\emacs 如您所料,环境变量 %USERPROFILE% 包含您的用户配置文件目录的路径。如果您不确定它是什么,请在 CLI 提示符下执行 set USERPROFILE。作为 Windows 用户,您可能习惯于在“我的文档”中存储内容。在这种情况下,您的目录将是:%USERPROFILE%\Documents\conf\emacs

第 3 步)如果在第 2 步)中您使用了路径 %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"))


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅