Ответ 1
Следующий ответ полностью скрывает все: от :PROPERTIES:
до :END:
. Его можно проверить, оценив (org-cycle-hide-drawers 'children)
или (org-cycle-hide-drawers 'all)
или в сочетании с другими функциями, связанными с циклическим просмотром контуров. Стандартные функции разворачивания, которые включены в семейство org-mode
, все работают - например, show-all
; org-show-subtree
; и др.
(require 'org)
(defun org-cycle-hide-drawers (state)
"Re-hide all drawers after a visibility state change."
(when (and (derived-mode-p 'org-mode)
(not (memq state '(overview folded contents))))
(save-excursion
(let* ((globalp (memq state '(contents all)))
(beg (if globalp
(point-min)
(point)))
(end (if globalp
(point-max)
(if (eq state 'children)
(save-excursion
(outline-next-heading)
(point))
(org-end-of-subtree t)))))
(goto-char beg)
(while (re-search-forward org-drawer-regexp end t)
(save-excursion
(beginning-of-line 1)
(when (looking-at org-drawer-regexp)
(let* ((start (1- (match-beginning 0)))
(limit
(save-excursion
(outline-next-heading)
(point)))
(msg (format
(concat
"org-cycle-hide-drawers: "
"`:END:`"
" line missing at position %s")
(1+ start))))
(if (re-search-forward "^[ \t]*:END:" limit t)
(outline-flag-region start (point-at-eol) t)
(user-error msg))))))))))
Для тех, кто заинтересован в циклическом переходе между всеми различными видами (включая выявление того, что находится внутри ящика :PROPERTIES:
, есть легкая модификация org-cycle-internal-local
путем добавления дополнительного условия до (t ;; Default action: hide the subtree. . . .
((eq org-cycle-subtree-status 'subtree)
(org-show-subtree)
(org-unlogged-message "ALL")
(setq org-cycle-subtree-status 'all))
Снимок экрана - Ящики скрыты:
https://www.lawlist.com/images/org_mode_properties_a.png
Снимок экрана - видимые ящики: