Doblar la región del archivo org


8

¿Hay alguna manera de plegar una región en modo org? (No todo el archivo, y no un elemento individual, sino una región que contiene varios elementos).

A menudo quiero colapsar solo una parte de un orgarchivo, digamos plegado:

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

dentro

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

Sé que en este ejemplo en particular podría simplemente doblar todo el archivo usando org-cycle, luego expandirlo ae dindividualmente, pero imagino que hay cientos de elementos y quiero doblar una docena de elementos contiguos contenidos en una región activa mientras dejo el resto de los elementos en el archivo expandido.


¿Cómo sería esto diferente de usar la C-tabfuncionalidad? Usando shift-tabciclos de todo el archivo, pero C-tabdobla un árbol en particular.
GJStein

¿Has intentado grabar una macro de teclado ?
Melioratus

@Melioratus Prefiero usar una función incorporada o elisp ya que hago esto muy a menudo.
holocronweaver

@GJStein He actualizado la pregunta que espero aclare lo que estoy buscando.
holocronweaver

Respuestas:


7

Esto parece hacer lo que quieres:

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

EDITAR: Primero di una solución incorrecta, que mantengo aquí, ya que también es interesante OMI (pero no responde la pregunta)

La función outline-hide-region-bodyparece ser exactamente lo que desea, pero por alguna razón no es interactiva. Podríamos agregarle una especificación interactiva, pero definamos org-hide-subtrees-in-regioncomo:

(defun org-hide-subtrees-in-region (beg end)
  (interactive "r")
  (outline-hide-region-body beg end))

Excelente, esto funciona! ¿Sería posible hacer que esto se comporte como org-cycleen la región?
holocronweaver

@holocronweaver No tengo una solución obvia en mente.
YoungFrog
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.