Свернуть блоки src в режиме org по умолчанию

11

Когда я открываю orgфайл, я хочу, чтобы все srcблоки начинались свернутыми и оставались такими, пока я не открою org-cycleих явно .

Я не могу найти переменную для управления этим поведением. Возможно, я что-то пропускаю? Или, может быть, у кого-то есть решение elisp?

няня
источник
4
Вот ссылка на связанные вопросы, в которых говорится об использовании переменной org-hide-block-startup: stackoverflow.com/a/21563210/2112489 . И следующая ссылка как-то связана с циклической видимостью srcблоков, которые я написал некоторое время назад, но по умолчанию они не скрыты. У меня не будет времени поработать над этим сегодня или завтра, но вот ссылка на тот случай, если вы или кто-то еще захотите немного поиграть с кодом: stackoverflow.com/a/25496350/2112489
lawlist

Ответы:

10

Вы можете достичь желаемого, добавив org-hide-block-allкоманду в org-mode-hook:

(add-hook 'org-mode-hook 'org-hide-block-all)

Для моей личной конфигурации я немного расширил это решение:

(defvar org-blocks-hidden nil)

(defun org-toggle-blocks ()
  (interactive)
  (if org-blocks-hidden
      (org-show-block-all)
    (org-hide-block-all))
  (setq-local org-blocks-hidden (not org-blocks-hidden)))

(add-hook 'org-mode-hook 'org-toggle-blocks)

(define-key org-mode-map (kbd "C-c t") 'org-toggle-blocks)

С этим по умолчанию , org-modeсворачивает SRCблоки по умолчанию и позволяет мне переключать видимость всех SRCблоков, нажимая C-c t. (Если вы решите использовать этот код, вы, конечно, можете адаптировать привязку клавиш по своему вкусу.)

itsjeyd
источник