EMACS складывание / раскладывание R кода - PullRequest
15 голосов
/ 20 февраля 2012

Существует ли дополнительный режим Emacs (или фрагмент кода elisp), который позволяет выборочно скрывать / отображать окружения в режиме Sweave (Sweave = R + LaTeX)?

Например, я хотел бы перейти к началу блока кода (<< >>), нажать клавишу и скрыть содержимое окружения.

Isэто возможно?Я только что попробовал hs-minor-mode, allout-mode и outline-minor-mode, но большинство из них не распознают среды R.

Я также попробовал org-mode, который отлично подходит для сворачивания / разворачиванияно не поддерживайте код подсветки LaTeX для выражения вроде: \ cite {};\ Исх {};\ ce {} ...

Лучший Риккардо

- РЕДАКТИРОВАТЬ -

Я пытался однажды использовать режим emacs-fold-modeно из-за того, что я работаю над очень длинным кодом (более 2000 строк), режим сворачивания «сходит с ума» и, например, неправильно понимает извлечение некоторого специального символа (например, $), который в R отличается от использования в R по сравнению с LaTeX.Я думаю, что проблема присуща Sweave, потому что в одном и том же буфере у меня есть R-код и LaTeX-код вместе.

Итак, сейчас я тестирую режим Emacs outline minor.Но когда я перехожу через 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 "#{{{ " "#}}}" " ")

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

Ответы [ 2 ]

1 голос
/ 20 февраля 2012

Здесь есть общий режим складывания: http://www.emacswiki.org/emacs/FoldingMode

0 голосов
/ 29 мая 2017

У меня были очень хорошие результаты с hideshow hs-minor-mode, это строки, которые я в основном использую в моем ~/.emacs.d/init.el:

(add-hook 'ess-mode-hook 'hs-minor-mode)

(eval-after-load 'hideshow
 '(progn
   (global-set-key (kbd "C-+") 'hs-toggle-hiding)))
...