Justo como decía la pregunta, me gustaría una función que contara las ventanas que se muestran actualmente en ese marco.
Así que esto:
+--------------+-------------+
| | |
| | |
| *scratch* | *Messages* |
| | |
| | |
| | |
+--------------+-------------+
| *Help* |
| |
+----------------------------+
Volvería => 3
Comencé una función a continuación:
(defun count-windows ()
"Count how many buffers are currently being shown."
(interactive)
)
*scratch*
, ¿le gustaría que la función devuelva 3 o 2?count-windows
).Respuestas:
Si te refieres a la cantidad de ventanas independientemente de los buffers que se muestran, entonces:
(length (window-list))
lo hará. Mejor aún, puede usar la(count-windows)
función existente .Si desea contar el número de buffers únicos visibles en las ventanas del marco, puede usar:
(Tenga en cuenta que
window-list
también puede tomar un argumento FRAME opcional si desea algo diferente al marco seleccionado).Si envuelve este último en su llamada de función, obtendrá:
(Tenga en cuenta que esta función asume que ha cargado
'cl-lib
. Según los comentarios, puede usarlodelete-dups
en lugar decl-delete-duplicates
si desea evitarlocl-lib
).fuente
cl-delete-duplicates
debe estar disponible porrequire
ingcl
.'cl-lib
?delete-dups
que también funcionaría, y no requiere 'cl-lib.