问:如何控制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
以执行所需的操作-您可以创建一个可以执行所需操作的条件。