Org-mode 用のこの気の利いた小さな関数を見つけました。
;;; 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)))
しかし、その後、キーを 2 回押す必要があります。専用のバッファーにエントリが表示され、2 回目はまだエントリが表示されます。関数を削除しようとしましたprogn
が、完全には機能しませんでした。
私は Lisp プログラマーではなく、1 時間ほどそれを試してみましたが、役に立たなかったので、経験のある人にこの問題を整理するのを手伝ってもらいたいです :)
とても感謝しております。