问:如何控制orgtodo关键字缓冲区的显示位置?
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以执行所需的操作-您可以创建一个可以执行所需操作的条件。