Could someone please give me some assistance to completely hide the :PROPERTIES:
drawer, including the line that says :PROPERTIES:
.
* TASKS (with deadines) ** Next Action [#A] Ask the geniuses how to do this. :lawlist: DEADLINE: <2013-07-04 Thu > :PROPERTIES: :ToodledoID: 330686790 :ToodledoFolder: TASKS :Hash: afa88f17317bbe2ce0ce661333cdcfb4 :END: This line is for notes, which appears underneath the properties drawer. * UNDATED (without deadlines) ** Someday [#A] Close but no cigar -- keep trying. :lawlist: :PROPERTIES: :ToodledoID: 330686680 :ToodledoFolder: TASKS :Hash: eb0b8d360b5b1453dd66ed0c5698e135 :END: This line is for notes, which appears underneath the properties drawer.
I didn't see this feature by Googling, so I'm guessing that some special lines of code will be needed to make this feature request a reality. [In other words, I don't think it is a Super User question because this will need to be invented with some special code.]
The following answer completely hides everything from :PROPERTIES:
through :END:
. It can be tested by evaluating (org-cycle-hide-drawers 'children)
, or (org-cycle-hide-drawers 'all)
, or in conjunction with the other functions relating to cycling the outline views. The standard functions to unfold that are included within the org-mode
family all work -- e.g., show-all
; org-show-subtree
; etc.
(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))))))))))
For anyone who interested in tab cycling between all of the various views (including revealing what is inside the :PROPERTIES:
drawer, there is an easy modification to org-cycle-internal-local
by adding an additional condition before (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))
Screenshot -- Drawers Hidden:
https://www.lawlist.com/images/org_mode_properties_a.png
Screenshot -- Drawers Visible:
https://www.lawlist.com/images/org_mode_properties_b.png
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With