P : como posso controlar onde o orgbuffer de palavras-chave todo aparece?
A inserção de uma todopalavra - chave com C-c C-t( org-todo) abre um novo buffer com as opções de palavra-chave e o fecha novamente depois que eu seleciono um. Por enquanto, tudo bem. No entanto, ele assume outra janela, o que é menos bom, especialmente porque ele realmente precisa exibir apenas uma ou duas linhas com as palavras-chave.
Portanto, com o seguinte layout, pressionar C-c C-tenquanto estiver na janela esquerda ( some-org-buffer) será aberto *Org todo*na janela direita:
+---------------------+---------------------+
| | |
| | |
| | |
| | |
| some-org-buffer | some-other-buffer |
| | |
| | |
| | |
| | |
+---------------------+---------------------+
Em vez disso, eu gostaria que uma pequena janela fosse exibida como uma divisão vertical, como abaixo:
+---------------------+---------------------+
| | |
| | |
| some-org-buffer | some-other-buffer |
| | |
| | |
+---------------------+ |
| | |
| *Org todo* | |
| | |
+---------------------+---------------------+
Partindo
dessa resposta , escrevi uma função para inserir 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))
No entanto, isso não funciona. Suspiro. O que eu fiz de errado com o display-buffer-alist? Mais exatamente, como faço para que meu
todobuffer de palavras-chave seja exibido onde eu quero?
org-switch-to-buffer-other-windowum monte de outras orgentranhas feias . Veja a resposta para a "solução" ignominiosa.
win. Existe um motivo para você não poder usar apenas (selected-window)aqui?
org-switch-to-buffer-other-windowpara fazer o que deseja - você pode criar uma condição que faça o que quiser.