Assim como a pergunta afirmou, eu gostaria de uma função que contasse as janelas que estão sendo mostradas atualmente nesse quadro.
Então, é isso:
+--------------+-------------+
| | |
| | |
| *scratch* | *Messages* |
| | |
| | |
| | |
+--------------+-------------+
| *Help* |
| |
+----------------------------+
Retornaria => 3
Comecei uma função abaixo:
(defun count-windows ()
"Count how many buffers are currently being shown."
(interactive)
)
*scratch*
, você deseja que a função retorne 3 ou 2?count-windows
).Respostas:
Se você quer dizer o número de janelas, independentemente de quais buffers estão sendo exibidos, então:
(length (window-list))
fará isso. Melhor ainda, você pode simplesmente usar a(count-windows)
função existente .Se você quiser contar o número de buffers exclusivos visíveis nas janelas do quadro, poderá usar:
(Observe que
window-list
também é possível usar um argumento FRAME opcional se você quiser algo diferente do quadro selecionado.)Ao agrupar o último em sua chamada de função, você terá:
(Observe que esta função supõe que você tenha carregado
'cl-lib
. Conforme os comentários, você pode usá-lodelete-dups
no lugar decl-delete-duplicates
se quiser evitarcl-lib
.)fonte
cl-delete-duplicates
precisa ser disponibilizada porrequire
ingcl
.'cl-lib
?delete-dups
que também funcionaria e não requer 'cl-lib.