El plegado se interpone en el camino al fusionar dos archivos de organización usando ediff, por lo que estoy tratando de deshabilitar todo el plegado en búferes de modo de organización creados por ediff. El comportamiento de plegado sin construcción no debe verse afectado.
Ingenuamente, creo que algo similar a lo siguiente debería funcionar:
(add-hook 'ediff-mode-hook
(lambda ()
(set (make-local-variable 'org-inhibit-startup-visibility-stuff) t)))
Estoy bastante seguro de que esta es la variable de organización para modificar (en lugar de org-startup-folded
o org-agenda-inhibit-startup
).
He intentado varios ganchos en vano (principalmente ediff-mode-hook
, ediff-before-setup-hook
, ediff-meta-mode-hook
, y ediff-prepare-buffer-hook
- lo que es probable que sea demasiado tarde) con la esperanza de que la variable internados será heredado.
Es muy posible que esté usando make-local-variable incorrectamente; el patrón solo está tomado de lo que he visto ampliamente.
Solo establecer el valor a nivel mundial ha sido efectivo (pero eso no es lo que estoy buscando). ¿Debería (ab) usar el mecanismo de asesoramiento?
show-all
? (org-mode
está construido encimaoutline-mode
y parece que siempre quieres que muestre todo).(add-hook 'ediff-prepare-buffer-hook 'show-all)
¡Hace el truco! Agregue eso como respuesta, @Dan? Todavía tengo curiosidad por las variables locales para ediff, pero creo queshow-all
es la mejor solución para mi problema.Respuestas:
Parece que tu objetivo es que los
org-mode
archivos siempre muestren todo cuando estás dentroediff
. La solución más simple es probablemente evitar el enfoque de las variables locales y simplemente colocarshow-all
el enlace correspondiente,ediff-prepare-buffer-hook
que se ejecuta después de configurar los buffers A, B y C:A pesar del nombre,
org-show-all
también funciona en eloutline-mode
queorg-mode
está construido encima. A diferenciaoutline-show-all
, muestra cajones de propiedad y bloques como#+begin_src ... #+end_src
.org-show-all
se ha agregado en Org 9.1.6. En versiones anteriores puedes usaroutline-show-all
oshow-all
.(Tenga en cuenta, según un comentario, que
show-all
está marcado como obsoleto en Emacs 25.1 a favor deoutline-show-all
. El último símbolo no está vinculado en 24.5.)fuente
show-all
se define de manera sensata, por lo que no necesita condiciones defensivas en el gancho y se puede invocar de forma segura dentro de los modos sin organización / sin esquema.show-all
está marcado como obsoleto desde el 25.1. Mejor usaroutline-show-all
, creo. (El primero es solo un alias para el segundo.)Otra opción se puede encontrar en la página de worg . La idea básica es usar
ediff-select-hook
para desplegar un elemento cada vez que se selecciona una región determinada en ediff y se pliega de nuevo en elediff-unselect-hook
. Estoy publicando el código aquí para completarfuente