Q : Comment puis-je contrôler où le orgtampon de mots clés todo apparaît?
La saisie d'un todomot - 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-tdans 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 todoapparaître mon
tampon de mots clés là où je le souhaite?
org-switch-to-buffer-other-windowtout un tas d'autres orgentrailles 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-windowpour faire ce que vous voulez - vous pouvez créer une condition qui fait ce que vous voulez.