D : come posso controllare dove org
appare il buffer delle parole chiave todo?
L'immissione di una todo
parola chiave con C-c C-t
( org-todo
) apre un nuovo buffer con le opzioni della parola chiave e la richiude dopo averne selezionato uno. Fin qui tutto bene. Tuttavia, ci vuole un'altra finestra per farlo, il che è meno buono, soprattutto perché ha solo bisogno di visualizzare una o due righe con le parole chiave.
Quindi, con il seguente layout, colpire C-c C-t
mentre nella finestra di sinistra ( some-org-buffer
) si aprirà *Org todo*
nella finestra di destra:
+---------------------+---------------------+
| | |
| | |
| | |
| | |
| some-org-buffer | some-other-buffer |
| | |
| | |
| | |
| | |
+---------------------+---------------------+
Vorrei invece far apparire una piccola finestra come una divisione verticale, come di seguito:
+---------------------+---------------------+
| | |
| | |
| some-org-buffer | some-other-buffer |
| | |
| | |
+---------------------+ |
| | |
| *Org todo* | |
| | |
+---------------------+---------------------+
Paralizzando da
questa risposta , ho scritto una funzione per inserire display-buffer-alist
:
(defun org-todo-position (buffer alist)
(let ((win (car (cl-delete-if-not
(lambda (window)
(with-current-buffer (window-buffer window)
(memq major-mode
'(org-mode org-agenda-mode))))
(window-list)))))
(when win
(let ((new (split-window win -5 'below)))
(set-window-buffer new buffer)
new))))
(add-to-list 'display-buffer-alist
(list " \\*Org todo\\*" #'dan-org-todo-position))
Tuttavia, ciò non funziona. Sospiro. Cosa ho fatto di sbagliato in display-buffer-alist
? Più precisamente, come posso visualizzare il
todo
buffer delle parole chiave nel punto desiderato?
org-switch-to-buffer-other-window
e un sacco di altre brutte org
interiora. Vedi la risposta per la "soluzione" ignominiosa.
win
. C'è un motivo che non puoi semplicemente usare (selected-window)
qui?
org-switch-to-buffer-other-window
per fare ciò che desideri: puoi creare una condizione che fa quello che vuoi.