başarısız olurken bu araçları, bir anda yüzlerce dosya yönetebilir) benzer bir şey için. buffer-stack
, tamponlar arasında çok esnek bir şekilde geçiş yapmanıza olanak tanır (en son kullanılan arabelleklerinizi hatırlar ve çerçeve başına ayırma yığınlarını kullanır).
Tampon değiştirme komutlarına filtre işlevleri ekleyebilirsiniz. Bu nedenle, geçerli olandan aynı uzantıya sahip dosya isimlerine sahip arabellekleri göz önünde bulundurmak için bir filtre işlevi ekleyebilirsiniz. Aynı modun arabellekleri arasında geçiş yapmak için bir filtreleme işlevi kullanıyorum. İşte bu benim tuşlamaların geçerli moda göre filtrelemeyi ve aynı zamanda direk arabelleklere geçişini gösteren bir örnek. Dosya uzantısına dayalı olarak başka bir filtre eklemek kolay olurdu:
(defmacro command (&rest body)
`(lambda()
(interactive)
,@body))
(defvar buffer-stack-mode)
(defun buffer-op-by-mode (op &optional mode)
(let ((buffer-stack-filter 'buffer-stack-filter-by-mode)
(buffer-stack-mode (or mode major-mode)))
(funcall op)))
(defun buffer-stack-filter-by-mode (buffer)
(with-current-buffer buffer
(equal major-mode buffer-stack-mode)))
(global-set-key [(meta kp-7)]
(command (buffer-op-by-mode 'buffer-stack-up)))
(global-set-key [(meta kp-9)]
(command (buffer-op-by-mode 'buffer-stack-down)))
(global-set-key [(meta kp-3)]
(command (buffer-op-by-mode 'buffer-stack-down 'dired-mode)))
(global-set-key [(meta kp-1)]
(command (buffer-op-by-mode 'buffer-stack-up 'dired-mode)))