2014-04-02 18 views
5

Tüm başına tampon geçin. Çerçevemi (C-x 3) iki pencereye ayırdığımı varsayalım. .c files için her zaman sol pencerede ve sağda .h files için arabelleklerle ilgilenmek isterim. Belirli bir pencereye arabellek listesini çiftlemek ve yalnızca geçerli pencereye ait olan arabellekleri döngülemek için bir yol arıyorum. Yani sağ tarafta bir .h file düzenliyorsam ve bir sonraki tuşa bastığımda sonraki .h file'u aldım. herhangi bir tavsiye içinemacs Ben diğer IDE benzer birden fazla pencerede</strong> yılında <strong>anahtar tamponları bir yol arıyorum</p> <p>, pencerenin

sayesinde Janos

cevap

1

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))) 
1

Sen ff-find-other-file kullanabilirsiniz. Bir önek argümanı C-u ile başka bir pencere açılacaktır.

Bir sonraki .h dosyasını alma fikriniz için, IDE'den Emacs'e kötü bir fikir katmaya çalışarak sadece numaralı telefonu sınırlıyorsunuz. kullanın projectile veya ido-switch-buffer veya helm-buffers-list: (yani sekmeler) "sonraki dosyayı alma" yaklaşımı etrafında ben MELPA yoluyla ulaşılabilir buffer-stack (kullanmak 20.