Ric*_*rdo 15 emacs folding ess sweave
是否有一个Emacs次要模式(或一段elisp代码),允许您在Sweave(Sweave = R + LaTeX)中有选择地隐藏/显示环境?
例如,我想移动到代码块(<< >>)的开头,点击击键,并从视图中隐藏环境的内容.
这可能吗?我只是尝试过hs-minor-mode,allout-mode和outline-minor-mode,但是大多数都不能识别R环境.
我还尝试了org-mode,它非常适合折叠/展开,但不支持LaTeX突出显示代码,如:\ cite {};\REF {};\ce {} ...
最好的Riccardo
- 编辑 -
我有一天尝试使用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")
Run Code Online (Sandbox Code Playgroud)
你有什么建议吗??
问候
--EDIT 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 "#{{{ " "#}}}" " ")
Run Code Online (Sandbox Code Playgroud)
我不知道是否正确,当你离开大块时,它会自动展开.
这里有一个通用的折叠模式:http ://www.emacswiki.org/emacs/FoldingMode