Tout comme la question l'indique, je voudrais une fonction qui compterait les fenêtres actuellement affichées dans ce cadre.
Donc ça:
+--------------+-------------+
| | |
| | |
| *scratch* | *Messages* |
| | |
| | |
| | |
+--------------+-------------+
| *Help* |
| |
+----------------------------+
Retournerais => 3
J'ai commencé une fonction ci-dessous:
(defun count-windows ()
"Count how many buffers are currently being shown."
(interactive)
)
*scratch*
, voudriez-vous que la fonction renvoie 3 ou 2?count-windows
).Réponses:
Si vous voulez dire le nombre de fenêtres, quels que soient les tampons affichés, alors: le
(length (window-list))
fera. Mieux encore, vous pouvez simplement utiliser la(count-windows)
fonction existante .Si vous souhaitez compter le nombre de tampons uniques visibles dans les fenêtres du cadre, vous pouvez utiliser:
(Notez que
window-list
peut également prendre un argument FRAME facultatif si vous voulez autre chose que le cadre sélectionné.)Envelopper ce dernier dans votre appel de fonction vous donnera:
(Notez que cette fonction suppose que vous avez chargé
'cl-lib
. Selon les commentaires, vous pouvez utiliserdelete-dups
à la place decl-delete-duplicates
si vous voulez évitercl-lib
.)la source
cl-delete-duplicates
doit être mise à disposition parrequire
ingcl
.'cl-lib
?delete-dups
cela fonctionnerait également, et ne nécessite pas 'cl-lib.