是否有一种 Emacs minor-mode(或 elisp 代码)可以在 Sweave 中选择性隐藏/显示环境?
例如,我想移动到代码块的开头 (<<>>),按下一个按键,然后使环境的内容隐藏不可见。
这种情况可能吗?我刚试了 hs-minor-mode、allout-mode 和 outline-minor-mode,但大多数都不能识别 R 环境。
我也尝试了很久使用 org-mode,它非常适用于折叠/展开,但是不支持像 \cite{}; \ref{}; \ce{} 这样的 LaTeX 高亮代码。
最好 Riccardo
--编辑--
我尝试使用 emacs-folding-mode 已经有几天了,但是因为我正在处理一个非常长的代码(超过 2000 行),所以折叠模式会“疯狂”,例如误解某些特殊字符(即 $),这些字符在 R 和 LaTeX 中的用途非常不同。我认为问题在于 Sweave 本身,因为在同一个缓冲区中,我同时有 R 代码和 LaTeX 代码。
现在,我正在测试 emacs outline minor mode。但是当我在 LaTeX 和 R 之间移动时,所有轮廓部分都会展开,尽管我已经在我的 .emacs 文件中写入了:
例如,我想移动到代码块的开头 (<<>>),按下一个按键,然后使环境的内容隐藏不可见。
这种情况可能吗?我刚试了 hs-minor-mode、allout-mode 和 outline-minor-mode,但大多数都不能识别 R 环境。
我也尝试了很久使用 org-mode,它非常适用于折叠/展开,但是不支持像 \cite{}; \ref{}; \ce{} 这样的 LaTeX 高亮代码。
最好 Riccardo
--编辑--
我尝试使用 emacs-folding-mode 已经有几天了,但是因为我正在处理一个非常长的代码(超过 2000 行),所以折叠模式会“疯狂”,例如误解某些特殊字符(即 $),这些字符在 R 和 LaTeX 中的用途非常不同。我认为问题在于 Sweave 本身,因为在同一个缓冲区中,我同时有 R 代码和 LaTeX 代码。
现在,我正在测试 emacs outline minor mode。但是当我在 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 "#{{{ " "#}}}" " ")
我不确定是否正确,当你离开代码块时,它会自动展开。