Питання : як я можу контролювати, де відображається orgбуфер ключових слів todo?
Введення todoключового слова за допомогою C-c C-t( org-todo) відкриває новий буфер із параметрами ключових слів, а потім знову закриває його після вибору. Все йде нормально. Однак для цього потрібне ще одне вікно, що менш добре, тим більше, що йому дійсно потрібно лише відображати рядок-два з ключовими словами.
Таким чином, при наступному макеті натискання C-c C-tклавіші в ліве вікно ( some-org-buffer) відкриється *Org todo*у правому вікні:
+---------------------+---------------------+
| | |
| | |
| | |
| | |
| some-org-buffer | some-other-buffer |
| | |
| | |
| | |
| | |
+---------------------+---------------------+
Натомість, я хотів би, щоб невелике вікно спливало як вертикальний розкол, як нижче:
+---------------------+---------------------+
| | |
| | |
| some-org-buffer | some-other-buffer |
| | |
| | |
+---------------------+ |
| | |
| *Org todo* | |
| | |
+---------------------+---------------------+
Скориставшись
цією відповіддю , я написав функцію 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))
Однак це не спрацьовує. Зітхнути. Що я зробив неправильно з display-buffer-alist? Більш того, як змусити мій
todoбуфер ключових слів з’являтися там, де я його хочу?
org-switch-to-buffer-other-windowцілу купу інших потворних orgнутрощів. Дивіться відповідь на ганебне "рішення".
win. Чи є причина, яку ви не можете просто використати (selected-window)тут?
org-switch-to-buffer-other-windowтого, що ви хочете - ви можете створити умову, яка робить все, що ви хочете.