有人可以帮我完全隐藏
:PROPERTIES:
抽屉吗,包括写着 :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.
我没有通过谷歌搜索看到这个功能,所以我猜测需要一些特殊的代码行才能使这个功能请求成为现实。 [换句话说,我不认为这是一个超级用户问题,因为这需要用一些特殊的代码来发明。]
以下答案完全隐藏了从
: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:
抽屉内的内容),可以通过添加附加条件 before
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
屏幕截图——抽屉可见:
目前这是不可能的,至少在没有(很多?)额外编码的情况下......
问题是:你如何取消隐藏它?你会单独看到“...”吗?
截至 2023 年,有一个 emacs 软件包
org-tidy
可以帮助解决此问题
https://github.com/jxq0/org-tidy
(use-package org-tidy
:ensure t
:config
(add-hook 'org-mode-hook #'org-tidy-mode))
这允许您切换当前所在标题的属性。
(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))))))