Questa restrizione è impostata in modo esplicito dalla follow-all-followers
nella sua chiamata a next-window
.
Ecco una soluzione rudimentale. Ci sono alcune carenze che noterai abbastanza rapidamente (ad esempio potresti dover organizzare manualmente i frame), ma facilita il requisito di base di utilizzare tutti i frame e dovresti riuscire a farlo funzionare.
Vorrei anche suggerire che FrameMove con WindMove potrebbe rivelarsi molto utile per questa disposizione.
(defmacro with-temporary-advice (function class name &rest body)
"Enable the specified advice, evaluate BODY, then disable the advice."
`(progn
(ad-enable-advice ,function ,class ,name)
(ad-activate ,function)
,@body
(ad-disable-advice ,function ,class ,name)
(ad-activate ,function)))
(defadvice next-window (before my-next-window-all-frames disable)
"Enforce the ALL-FRAMES argument to `next-window'."
(ad-set-arg 2 'visible))
(defadvice follow-all-followers (around my-follow-all-frames activate)
"Allow `follow-mode' to span frames."
(with-temporary-advice
'next-window 'before 'my-next-window-all-frames
ad-do-it))
Si potrebbe invece preferire di ridefinire semplicemente la funzione di follow-all-followers
a fare quello che vuoi.
esiste Questa limitazione per due ragioni: 1) non c'è naturale "primo frame", quindi sarebbe difficile per il follow-mode di capire in quale ordine di organizzare il contenuto delle finestre. 2) Permette ad un utente di aprire diversi frame, ognuno dei quali mostra parti diverse del buffer. Perché non usi un frame grande - il mio è di sei colonne che si estende su due monitor fisici, il che mi dà un totale di 888 linee. – Lindydancer