问题
After filtering my document to a sparse tree, how do I undo the filter, going back to the previous view/visibility? Because I haven't worked out how to do this out I have to make everything visible, which isn't nice in big documents. Seems like it must be obvious but I can't find the answer...
回答1:
This looks like it might be possible to me. In the following code I use some advice to save the outline state before generating the sparse tree, and to restore it when it is cleared via C-c C-c.
(setq lexical-binding t)
(let ((*outline-data* nil))
(defun org-save-outline-state (&optional arg type)
(setq *outline-data* (org-outline-overlay-data t)))
(defun org-restore-outline-state (&optional arg)
(when *outline-data*
(org-set-outline-overlay-data *outline-data*)
(setq *outline-data* nil))))
(advice-add 'org-sparse-tree :before 'org-save-outline-state)
(advice-add 'org-match-sparse-tree :before 'org-save-outline-state)
(advice-add 'org-ctrl-c-ctrl-c :after 'org-restore-outline-state)
It seems to do what you want.
回答2:
According to Bastien on the org mailing list, this isn't possible and is a long-standing wishlist item.
回答3:
I'm not sure you can go back to the exact previous view. But one first step is C-c C-c which will remove temporary highlights/overlays from the current buffer.
回答4:
You can create two windows using C-x 2, then switch to the other window, do the sparse tree. When you are done simply go back to the original window and press C-x 1 to close the sparse tree window.
回答5:
You probably cannot go back to the same view as before.
But there are 3 steps to remove the spare tree effects:
org-agenda-remove-restriction-lock
to remove the locked items' highlighted background.org-remove-occur-highlights
to remove the prefix's highlight.widen
to remove the restriction to the special entry, and expand to view the full file.
来源:https://stackoverflow.com/questions/6666862/org-mode-go-back-from-sparse-tree-to-previous-visibility