Tak jak zadane pytanie, chciałbym funkcji, która zliczałaby okna wyświetlane obecnie w tej ramce.
Więc to:
+--------------+-------------+
| | |
| | |
| *scratch* | *Messages* |
| | |
| | |
| | |
+--------------+-------------+
| *Help* |
| |
+----------------------------+
Wróciłbym => 3
Uruchomiłem funkcję poniżej:
(defun count-windows ()
"Count how many buffers are currently being shown."
(interactive)
)
*scratch*
, czy chcesz, aby funkcja zwróciła 3 lub 2?count-windows
).Odpowiedzi:
Jeśli masz na myśli liczbę okien niezależnie od tego, które bufory są wyświetlane, to:
(length (window-list))
zrobi to. Co więcej, możesz po prostu użyć istniejącej(count-windows)
funkcji.Jeśli chcesz policzyć liczbę unikalnych buforów widocznych w oknach na ramce, możesz użyć:
(Pamiętaj, że
window-list
możesz również wziąć opcjonalny argument FRAME, jeśli chcesz czegoś innego niż wybrana ramka).Opakowanie tego ostatniego w wywołanie funkcji zapewni:
(Pamiętaj, że ta funkcja zakłada, że załadowałeś
'cl-lib
. Zgodnie z komentarzami możesz użyćdelete-dups
zamiast tego,cl-delete-duplicates
jeśli chcesz tego uniknąćcl-lib
).źródło
cl-delete-duplicates
należy udostępnić przezrequire
ingcl
.'cl-lib
?delete-dups
to też działałoby i nie wymaga 'cl-lib.