Ответ 1
Здесь есть общий режим складывания: http://www.emacswiki.org/emacs/FoldingMode
Есть ли второстепенный режим Emacs (или фрагмент кода elisp), который позволяет выборочно скрывать/показывать среды в Sweave (Sweave = R + LaTeX)?
Например, я хотел бы перейти к началу блока кода (< < → ), нажать клавишу нажатия и отобразить содержимое среды, скрытое от представления.
Возможно ли это? Я просто пробовал hs-minor-mode, allout-mode и outline-minor-mode, но большинство из них не распознает среды R.
Я также попробовал орг-режим, который отлично работает для складывания/разворачивания, но не поддерживает код подсветки LaTeX для выражения типа:\cite {};\Исх {};\ce {}...
Лучший Риккардо
- EDIT -
В какой-то момент я попытался использовать emacs-folding-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 "#{{{ " "#}}}" " ")
Я не знаю, правильно ли это, когда вы покидаете кусок, он автоматически разворачивается.
Здесь есть общий режим складывания: http://www.emacswiki.org/emacs/FoldingMode
У меня были очень хорошие результаты с помощью 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)))