Q : Comment puis-je contrôler où le org
tampon de mots clés todo apparaît?
La saisie d'un todo
mot - clé avec C-c C-t
( org-todo
) ouvre un nouveau tampon avec les options de mot-clé, puis le ferme à nouveau après en avoir sélectionné un. Jusqu'ici tout va bien. Cependant, il reprend une autre fenêtre pour ce faire, ce qui est moins bon, d'autant plus qu'il n'a vraiment besoin d'afficher qu'une ou deux lignes avec les mots clés.
Ainsi, avec la disposition suivante, frapper C-c C-t
dans la fenêtre de gauche ( some-org-buffer
) s'ouvrira *Org todo*
dans la fenêtre de droite:
+---------------------+---------------------+
| | |
| | |
| | |
| | |
| some-org-buffer | some-other-buffer |
| | |
| | |
| | |
| | |
+---------------------+---------------------+
Au lieu de cela, j'aimerais avoir une petite fenêtre pop up comme une division verticale, comme ci-dessous:
+---------------------+---------------------+
| | |
| | |
| some-org-buffer | some-other-buffer |
| | |
| | |
+---------------------+ |
| | |
| *Org todo* | |
| | |
+---------------------+---------------------+
A partir de
cette réponse , j'ai écrit une fonction à mettre dans 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))
Cependant, cela ne fonctionne pas. Soupir. Qu'est-ce que j'ai fait de mal avec le display-buffer-alist
? Plus précisément, comment puis-je faire todo
apparaître mon
tampon de mots clés là où je le souhaite?
org-switch-to-buffer-other-window
tout un tas d'autres org
entrailles laides . Voir la réponse pour la "solution" ignominieuse.
win
. Y a-t-il une raison que vous ne pouvez pas simplement utiliser (selected-window)
ici?
org-switch-to-buffer-other-window
pour faire ce que vous voulez - vous pouvez créer une condition qui fait ce que vous voulez.