Вопрос : как я могу контролировать, где 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
чтобы сделать то, что вы хотите - вы можете создать условие, которое делает все, что вы хотите.