Beim Zusammenführen von zwei Organisationsdateien mit ediff wird das Falten gestört, daher versuche ich, das gesamte Falten in von ediff erstellten Organisationsmoduspuffern zu deaktivieren. Das nicht ediff Faltverhalten sollte unberührt bleiben.
Naiv denke ich, dass etwas Ähnliches wie das Folgende funktionieren sollte:
(add-hook 'ediff-mode-hook
(lambda ()
(set (make-local-variable 'org-inhibit-startup-visibility-stuff) t)))
Ich bin mir ziemlich sicher, dass dies die zu ändernde Organisationsvariable ist (und nicht org-startup-folded
oder org-agenda-inhibit-startup
).
Ich habe ohne Erfolg verschiedene Haken versucht (vor allem ediff-mode-hook
, ediff-before-setup-hook
, ediff-meta-mode-hook
, und ediff-prepare-buffer-hook
- was wahrscheinlich zu spät ist) in der Hoffnung , dass die Internierung Variable geerbt werden.
Es ist durchaus möglich, dass ich make-local-variable falsch verwende. Das Muster ist nur von dem entlehnt, was ich weithin gesehen habe.
Nur das globale Einstellen des Werts war effektiv (aber dafür fotografiere ich nicht). Sollte ich (ab) den Beratungsmechanismus verwenden?
show-all
stattdessen einfach einen Funktionsaufruf ? (org-mode
ist darauf aufgebautoutline-mode
und es hört sich so an, als ob Sie immer wollen, dass es alles zeigt.)(add-hook 'ediff-prepare-buffer-hook 'show-all)
macht den Trick! Fügen Sie das als Antwort hinzu, @Dan? Ich bin immer noch neugierig auf lokale Variablen für ediff, aber ich denke, dasshow-all
ist die beste Lösung für mein Problem.Antworten:
Es hört sich so an, als ob Ihr Ziel darin besteht, dass
org-mode
Dateien immer alles anzeigen, wenn sie sich in befindenediff
. Die einfachste Lösung besteht wahrscheinlich darin, den Ansatz lokaler Variablen zu vermeiden und einfachshow-all
den entsprechenden Hook einzufügen,ediff-prepare-buffer-hook
der ausgeführt wird, nachdem die Puffer A, B und C eingerichtet wurden:Trotz des Namens
org-show-all
funktioniert auch das,outline-mode
worauf aufgebautorg-mode
ist. Im Gegensatzoutline-show-all
dazu zeigt es Eigenschaftsschubladen und Blöcke wie#+begin_src ... #+end_src
.org-show-all
wurde in Org 9.1.6 hinzugefügt. In früheren Versionen können Sieoutline-show-all
oder verwendenshow-all
.(Beachten Sie laut einem Kommentar, dass dies
show-all
in Emacs 25.1 zugunsten von veraltet istoutline-show-all
. Das letztere Symbol ist in 24.5 nicht gebunden.)quelle
show-all
so aus, als wäre es vernünftig definiert, so dass es keine Verteidigungsbedingungen im Hook benötigt und sicher in Nicht-Organisations- / Nicht-Umriss-Modi aufgerufen werden kann.show-all
ist seit 25.1 veraltet markiert. Besser zu benutzenoutline-show-all
, denke ich. (Ersteres ist nur ein Alias für Letzteres.)Eine weitere Option finden Sie auf der Worg- Seite. Die Grundidee ist , zu verwenden , um
ediff-select-hook
ein Element zu entfalten , wenn bestimmte Region in ediff ausgewählt ist und Falten sie in dem Rückenediff-unselect-hook
. Der Vollständigkeit halber poste ich hier den Codequelle