Я нашел эту изящную маленькую функцию для организационного режима:
;;; Move to next heading with dedicated buffer preview
(defun ded/org-show-next-heading-tidily ()
"Show next entry, keeping other entries closed."
(if (save-excursion (end-of-line) (outline-invisible-p))
(progn (org-show-entry) (show-children))
(outline-next-heading)
(unless (and (bolp) (org-on-heading-p))
(org-up-heading-safe)
(hide-subtree)
(error "Boundary reached"))
(org-overview)
(org-reveal t)
(org-show-entry)
(show-children)))
Он перемещается от заголовка к заголовку и показывает свое непосредственное содержание и дочерние элементы. Мне понравилась идея, но я бы предпочел, чтобы она отображалась в выделенном буфере с использованием (org-tree-to-indirect-buffer)
.
Я пытался сделать это так:
(defun ded/org-show-next-heading-test ()
"Show next entry, keeping other entries closed."
(if (save-excursion (end-of-line) (outline-invisible-p))
(progn (org-show-entry) (org-tree-to-indirect-buffer))
(outline-next-heading)
(unless (and (bolp) (org-on-heading-p))
(org-up-heading-safe)
(hide-subtree)
(error "Boundary reached"))
(org-overview)
(org-reveal t)
(org-tree-to-indirect-buffer)
(show-children)))
Но тогда мне приходится дважды нажимать клавишу — один раз показывает запись в выделенном буфере, а второй — все еще показывает запись. Я пытался удалить функцию progn
, но тогда она не работала полностью.
Я не программист на Лиспе, и я пытался поиграть с ним около часа, но безрезультатно, поэтому я бы хотел, чтобы кто-нибудь с опытом помог мне разобраться с этим :)
Весьма признателен.