gpt4 book ai didi

EMACS折叠/展开R代码

转载 作者:行者123 更新时间:2023-12-03 02:24:35 27 4
gpt4 key购买 nike

是否有一个 Emacs 小模式(或一段 elisp 代码)可以让您在 Sweave 中选择性地隐藏/显示环境(Sweave = R + LaTeX)?

例如,我想移至代码块 (<<>>) 的开头,按下击键,然后将环境内容隐藏在 View 中。

这可能吗?我刚刚尝试了 hs-minor-mode、allout-mode 和 Outline-minor-mode,但大多数都无法识别 R 环境。

我还尝试了 org-mode,它非常适合折叠/展开,但是不支持 LaTeX 突出显示代码的表达式,例如:\cite{};\引用{};\ce{} ...

最佳里卡多

--编辑--

我尝试了一天使用 emacs-folding-mode,但是,因为我处理的代码很长(超过 2000 行),折叠模式“变得疯狂”,例如误解了某些特殊字符的挖掘(即$),它在 R 中的用途与 LaTeX 中的用途非常不同。我认为这个问题是 Sweave 固有的,因为在同一个缓冲区中,我同时拥有 R 代码和 LaTeX 代码。

所以,现在我正在测试 emacs 大纲次要模式。但是,当我从 LaTeX 转向 R 时(反之亦然),尽管我在 .emacs 中写入,但所有概述的部分都展开了:

(defun turn-on-outline-minor-mode ()
(outline-minor-mode 1))
(add-hook 'ess-mode-hook 'turn-on-outline-minor-mode)
(add-hook 'LaTeX-mode-hook 'turn-on-outline-minor-mode)
(add-hook 'latex-mode-hook 'turn-on-outline-minor-mode)
(setq outline-minor-mode-prefix "\C-c\C-o")

你有什么建议吗?

问候

--编辑2--

它似乎有效:

(load "folding" 'nomessage 'noerror)
(folding-mode-add-find-file-hook)
(add-hook 'LaTeX-mode-hook 'folding-mode)
(add-hook 'ess-mode-hook 'folding-mode)
(folding-add-to-marks-list 'ess-mode "#{{{ " "#}}}" " ")

我不知道当你离开该 block 时它是否会自动展开。

最佳答案

这里有一个通用的折叠模式:http://www.emacswiki.org/emacs/FoldingMode

关于EMACS折叠/展开R代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9354137/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com