Существует ли второстепенный режим Emacs (или фрагмент кода elisp), который позволяет вам выборочно скрывать / отображать среды в Sweave (Sweave = R + LaTeX )?
Например, я хотел бы перейти к началу блока кода (<< >>), нажать клавишу и скрыть содержимое среды от просмотра.
Возможно ли это? Я только что попробовал hs-minor-mode, allout-mode и outline-minor-mode, но большинство из них не распознают среды R.
Я также пробовал org-mode, который отлично работает для сворачивания / разворачивания, но не поддерживает код выделения LaTeX для таких выражений, как: \ cite {}; \ ref {}; \ ce {} ...
Лучшее Риккардо
- РЕДАКТИРОВАТЬ -
Некоторое время я пытался использовать emacs-fold-mode, но, поскольку я работаю с очень длинным кодом (более 2000 строк), режим сворачивания «сходит с ума» и, например, неправильно понимать добычу некоторого специального символа (например, $), который имеет совершенно другое использование как в R, так и в LaTeX. Я думаю, что проблема присуща Sweave, потому что в одном буфере у меня есть код R и код LaTeX вместе.
Итак, теперь я тестирую второстепенный режим схемы emacs. Но когда я перехожу через R из LaTeX (и наоборот), вся описанная часть развернулась, несмотря на то, что я пишу в своем.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 "#{{{ " "#}}}" " ")
Я не знаю, правильно ли это, когда вы покидаете чанк, он автоматически разворачивается.