Сворачивание / разворачивание кода R в EMACS

Существует ли второстепенный режим 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 "#{{{ " "#}}}" " ")

Я не знаю, правильно ли это, когда вы покидаете чанк, он автоматически разворачивается.

15
задан Riccardo 17 March 2012 в 23:10
поделиться