Hạn chế này được đặt rõ ràng bằng follow-all-followers
trong cuộc gọi tới next-window
.
Đây là giải pháp sơ bộ. Có một số thiếu sót bạn sẽ nhận thấy khá nhanh (ví dụ: bạn có thể cần phải sắp xếp các khung theo cách thủ công), nhưng nó tạo điều kiện cho yêu cầu cơ bản của việc sử dụng tất cả các khung và bạn sẽ có thể làm cho nó hoạt động.
Tôi cũng đề nghị rằng FrameMove với WindMove có thể chứng minh rất hữu ích cho sự sắp xếp này.
(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))
Thay vào đó, bạn có thể chỉ cần xác định lại chức năng follow-all-followers
để thực hiện những gì bạn muốn.
Giới hạn này tồn tại vì hai lý do: 1) không có "khung đầu tiên" tự nhiên, vì vậy sẽ khó có thể theo dõi để sắp xếp nội dung của cửa sổ. 2) Nó cho phép người dùng mở nhiều khung hình, mỗi khung hiển thị các phần khác nhau của bộ đệm. Tại sao bạn không sử dụng một khung lớn - tôi là sáu cột rộng lây lan trên hai màn hình vật lý, mang lại cho tôi tổng cộng 888 dòng. – Lindydancer