F: Wie kann ich steuern, in welchem Fenster org-deadline
der Kalender angezeigt wird?
org-deadline
Öffnet den calendar
Puffer vorübergehend in einem Fenster, wenn eine Frist festgelegt wird, und schließt ihn anschließend wieder. Wenn es nur ein Fenster gibt, wird am unteren Rand des vorhandenen Rahmens ein neues Fenster angezeigt. Wenn es mehrere Fenster gibt, wählt es eines get-lru-window
der verfügbaren Fenster aus.
Letzteres ist problematisch, wenn es eines der anderen Fenster übernimmt, das die Informationen enthält, die ich zum Festlegen der Frist (Datum, Uhrzeit usw.) benötige. Dies ist häufig ein Problem in einem Fenster-Setup wie:
+--------------------+--------------------+
| | |
| | (B: mu4e header) |
| | |
| +--------------------+
| (A: agenda file) | |
| | |
| | |
| | (C: mu4e view) |
| | |
| | |
| | |
+--------------------+--------------------+
Wenn Sie der Agenda-Datei in (A) eine Frist hinzufügen, org-deadline
übernehmen Sie (B) oder (C), die E-Mails mit den von mir benötigten Datums- / Uhrzeitinformationen enthalten. Ich würde es sehr bevorzugen, wenn ich org-deadline
von (A) aus aufrufe, würde ein temporäres Fenster (D) eingeblendet, das den folgenden calendar
Puffer enthält :
+--------------------+--------------------+
| | |
| | (B: mu4e header) |
| | |
| +--------------------+
| (A: agenda file) | |
| | |
| | |
+--------------------+ (C: mu4e view) |
| | |
| (D: calendar) | |
| | |
+--------------------+--------------------+
Also: Wie würde man org-deadline
(und analoge Funktionen) dazu zwingen , ein neues, temporäres Fenster am unteren Rand des aktiven Fensters einzufügen, anstatt eines der anderen zu übernehmen?
PS: Ich kenne dedizierte Fenster , aber sie sind für mich nicht der beste Ansatz, da ich den Fenstern weniger Puffer zuweisen möchte, da ich vermeiden möchte, dass eine Funktion eine der "kurzen" Fenster übernimmt. Einsen.
display-buffer-alist
) Aber ich denke, dass es hier eine zusätzliche Falte gibt, weilorg-deadline
Verwendungen,calendar
die sich aus dem Weg räumen , um zu steuern, welches Fenster verwendet werden soll. Siehe die Kommentare incalendar-basic-setup
.Antworten:
Folgendes sollte tun, was Sie wollen.
Kalender verwendet die Funktion
calendar-basic-setup
den Kalender - Puffer anzuzeigen,calendar-basic-setup
verwendet wiederumpop-to-buffer
die verwendet wiederumdisplay-buffer
den Kalender - Puffer anzuzeigen. Nowdisplay-buffer
ist in hohem Maße anpassbar und ermöglicht es uns, Funktionen zum Anzeigen eines Puffers mit bestimmten Variablen bereitzustellen, die wirdisplay-buffer-alist
hier verwenden.Grundsätzlich sagen wir, dass Emacs die Funktion verwenden soll
my-position-calendar-buffer
, um einen Puffer anzuzeigen, der mit dem regulären Ausdruck übereinstimmt\*Calendar\*
. Die Funktionmy-position-calendar-buffer
sucht nach einem Fenster, in dem die Organisationsagendadisplay-buffer
angezeigt wird. Findet sie kein solches Fenster, unternimmt sie nichts. In diesem Fall werden einige andere Funktionen zum Anzeigen des Puffers ausgeführt. Wird ein Fenster gefunden, in dem die Organisationsagenda angezeigt wird, teilt die Funktion dieses Fenster vertikal und zeigt den Kalenderpuffer an.Ich habe dies nicht gründlich getestet (habe gerade versucht, den Kalender mit der Agenda-Ansicht und ohne die Agenda-Ansicht zu starten), es scheint zu funktionieren, aber es kann einige Fehler geben.
quelle
add-to-list
display-buffer-alist" zu verwenden. Durchsetq
das Verwenden werden andere Anpassungen überschrieben.