Bereich der Organisationsdatei falten

8

Gibt es eine Möglichkeit, eine Region im org-Modus zu falten? (Nicht die gesamte Datei und kein einzelnes Element, sondern eine Region mit mehreren Elementen.)

Oft möchte ich nur einen Teil einer orgDatei reduzieren, z. B. Falten:

* a
** a1
** a2
* b
** b1
** b2
** b3
* c
** c1
** c2
* d
** d1
** d2

in

* a
** a1
** a2
* b ...
* c ...
* d
** d1
** d2

Ich weiß, dass ich in diesem speziellen Beispiel einfach die gesamte Datei mit falten org-cycle, dann erweitern aund deinzeln erstellen könnte , aber stellen Sie sich vor, es gibt Hunderte von Elementen, und ich möchte ein Dutzend zusammenhängender Elemente falten, die in einem aktiven Bereich enthalten sind, während der Rest der Elemente in der Datei verbleibt Datei erweitert.

Holocronweber
quelle
Wie würde sich dies von der Verwendung der C-tabFunktionalität unterscheiden? Mit shift-tabZyklen wird die gesamte Datei durchlaufen, aber C-tabein bestimmter Baum gefaltet.
GJStein
Haben Sie versucht, ein Tastaturmakro aufzunehmen ?
Melioratus
@Melioratus Ich würde lieber eine eingebaute Funktion oder ein Elisp verwenden, da ich dies sehr oft mache.
Holocronweaver
@GJStein Ich habe die Frage aktualisiert, die hoffentlich klarstellt, was ich suche.
Holocronweaver

Antworten:

7

Dies scheint zu tun, was Sie wollen:

(defun org-hide-subtrees-in-region (beg end)
  (interactive "r")
  (save-restriction
    (narrow-to-region beg end)
    (outline-hide-sublevels 1)))

EDIT: Ich habe zuerst eine falsche Lösung angegeben, die ich hier behalte, da es auch IMO interessant ist (aber die Frage nicht beantwortet)

Die Funktion outline-hide-region-bodyscheint genau das zu sein, was Sie wollen, aber aus irgendeinem Grund ist sie nicht interaktiv. Wir könnten eine interaktive Spezifikation hinzufügen, aber definieren wir einfach org-hide-subtrees-in-regionals:

(defun org-hide-subtrees-in-region (beg end)
  (interactive "r")
  (outline-hide-region-body beg end))
Junger Frosch
quelle
Hervorragend, das funktioniert! Wäre es möglich, dass sich dies wie org-cyclein der Region verhält ?
Holocronweaver
@holocronweaver Ich habe keine offensichtliche Lösung im Sinn.
YoungFrog