Completely hide the :PROPERTIES: drawer in org-mode

org mode visibility property
org mode expand all

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

How to completely hide the properties drawer in org-mode! : emacs, Here's a better way to toggle the properties of the header you're currently in. (​defun org-toggle-properties () ;; toggle visibility of properties in current header if it​  I don't use a current version of org-mode, but back in the day (a few years ago), I wrote up an answer describing how to completely hide the :PROPERTIES: drawer including the aforementioned line. Towards the end of the answer, I wrote-up a snippet that modifies the behavior of cycling so as to add an additional level of toggling visibility/hiding.

That's simply not possible right now, at least not without (a lot of?) extra coding...

Problem is: how would you unhide it? Would you see "..." alone?

In org mode, how can I hide body text but show drawer contents , You can add overlays with the invisible property to everything except headlines and drawers (see overlay properties section of the manual). org-mode - Org mode is for keeping notes, maintaining TODO lists, planning projects, and authoring documents with a fast and effective plain-text system. Implement `org-cycle-hide-property-drawers' · 1027e02569 - Gogs

This allows you to toggle the properties of the header you're currently in.

(defun org-toggle-properties ()
  ;; toggle visibility of properties in current header if it exists
  (save-excursion
    (when (not (org-at-heading-p))
      (org-previous-visible-heading 1))
    (when (org-header-property-p)
      (let* ((a (re-search-forward "\n\\:" nil t)))
        (if (outline-invisible-p (point))
            (outline-show-entry)
          (org-cycle-hide-drawers 'all))))))

Re: [O] Completely hide the :PROPERTIES: drawer in org-mode., From: Michaël Cadilhac. Subject: Re: [O] Completely hide the :PROPERTIES: drawer in org-mode. Date: Wed, 28 Aug 2019 17:38:39 -0500  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.

Re: [Orgmode] hiding PROPERTIES line, to 100% hide the :PROPERTIES: drawer while giving the user a hint that > there is one What about a command to hide/unhide _all_  20 Completely hide the :PROPERTIES: drawer in org-mode 20 Gist -- how to set the height and width of an embedded Gist 18 Completely hide the :PROPERTIES: drawer in org-mode

Drawers (The Org Manual), With a prefix argument, this command calls org-insert-property-drawer , which creates a ' PROPERTIES ' drawer right below the current headline. Org mode uses  20 Completely hide the :PROPERTIES: drawer in org-mode 20 Gist -- how to set the height and width of an embedded Gist 18 Completely hide the :PROPERTIES: drawer in org-mode

org file, Hello, Michaël Cadilhac <mich@cadilhac.name> writes: > Apologies for the delay. > > Is that alright? It is. Applied. Thank you! Regards  If necessary, the property drawer is created as well. C-u M-x org-insert-drawer. Insert a property drawer into the current entry. The drawer is inserted early in the entry, but after the lines with planning information like deadlines. C-c C-c (org-property-action) With point in a property drawer, this executes property commands. C-c C-c s (org-set-property)

Comments
  • Why not send that upstream by the way?
  • @Michaël -- That is a good idea -- I just emailed a short description and link to whoever subscribes to the org-mode mailing list.
  • @Michaël -- FYI: The proposed feature has been rejected by the maintainer of the org-mode package and I do not have the inclination to try and convince him to add this feature because the answer above is sufficient to meet my present needs. ["Thank you for the suggestion. However, I think hiding completely stuff from the user is not great. How would you edit it, or even know there are properties there? You can write ":properties:" instead of ":PROPERTIES:", dim them with an appropriate face…"] I vaguely remember a similar response a few years ago, but could not find the old email.
  • There must be a simple solution, like re-search-forward with a save excursion from top to bottom of the buffer for every line beginning with :PROPERTIES: through to and including the word :END: and hit the code fold button, so that it folds up underneath the previous line. Then the unfold everything button to display everything, and from there back to cycling.
  • The icing on the cake would be an upside down triangle at the end of the first line to indicate a code fold. :)
  • A full-fledged solution now exists -- :)
  • @american-ninja-warrior -- sorry for the delay in responding. I see that at least one other person had the same inquiry as you (based upon the upvote to your question). The accepted answer in this thread contains a full-fledged solution as far as I am aware -- I have been using that solution since about the year 2013 to the present.
  • The call of the question seeks a means to completely hide the :PROPERTIES: drawer -- including the line that says :PROPERTIES:. In addition, the function org-header-property-p does not exist in the most recent version of org-mode available by cloning as of 09/23/2018: git clone https://code.orgmode.org/bzg/org-mode.git. That function does not exist in a few of the prior versions of org-mode that I also grepped. As I am unable to test the function due to missing components, I do not know if there are any other issues. Also, Google cannot find org-header-property-p.