M-x ibuffer
- Bir arabellek seçin
- O tamponu öldür
Tampon öldürüldükten sonra, tampon tamponu yeniden belirir, ancak yine de 3. adımda öldürülen tampon adını gösterir.
İbuffer'ın arabellek listesini otomatik olarak yenilemesini sağlamak mümkün mü?
M-x ibuffer
Tampon öldürüldükten sonra, tampon tamponu yeniden belirir, ancak yine de 3. adımda öldürülen tampon adını gösterir.
İbuffer'ın arabellek listesini otomatik olarak yenilemesini sağlamak mümkün mü?
Yanıtlar:
Komutu ibuffer-auto-mode
bir Ibuffer arabelleğinde çalıştırmak, her etkileşimli komuttan sonra ekranı yenilemesini sağlar.
Otomatik olarak etkinleştirmenin doğrudan bir yolu yoktur. Bunu init dosyanıza koyabilirsiniz:
(add-hook 'ibuffer-mode-hook (lambda () (ibuffer-auto-mode 1)))
ibuffer
, seçim kaybolur.
Bunu yapmak için doğru yolu destek tanıtmaktır ibuffer
için auto-revert-mode
. Bu, buffer-stale-function
bu tamponları tanımlayarak elde edilebilir . Tartışmalı bir şekilde, bu buffer-menu
özelliği desteklediğinden, onu yukarı akışa sahip olmak iyi olurdu ibuffer
, ancak şimdilik böyle görünmüyor.
Her neyse, işte bunu yapmanın bir yolu:
(defun my-ibuffer-stale-p (&optional noconfirm)
;; let's reuse the variable that's used for 'ibuffer-auto-mode
(frame-or-buffer-changed-p 'ibuffer-auto-buffers-changed))
(defun my-ibuffer-auto-revert-setup ()
(set (make-local-variable 'buffer-stale-function)
'my-ibuffer-stale-p)
(set (make-local-variable 'auto-revert-verbose) nil)
(auto-revert-mode 1))
(add-hook 'ibuffer-mode-hook 'my-ibuffer-auto-revert-setup)
Not: genel olarak, biri için bir değer tanımlamanız gerekir revert-buffer-function
, ancak ibuffer
zaten bunu yapar (olarak ayarlanır ibuffer-update
)
ibuffer-auto-mode
?
auto-revert-mode
zamanlayıcılar ve kullanır ibuffer-auto-mode
kullanır post-command-hook
bariz var, bu yüzden fark ; ama hazırlıksız birinin diğerine tercih olup olmadığını söyleyemedim.
ibuffer
eski içeriği yenilemek söz konusu olduğunda arabellekleri başkaları gibi davranmak bana daha temiz geliyor. Ayrıca, genellikle post-command-hook
bu şekilde suistimal etmekten hoşlanmıyorum : tamponda tamamen alakasız bir şey yaptığınızda gerçekten aşırıya kaçıyor. Son olarak, içeriğin yenilenmesi için bir çeşit tuş vuruşu gerekiyorsa, içeriği g
güncellemenin açık yolu da bu olabilir . Ama kabul edildi, muhtemelen felsefi bir mesele :)
Reverting buffer `*Ibuffer*'.
Mesaj müdahaleci çünkü minibuffer çalışırken beni kesintiye uğratmaya devam ediyor. ibuffer
Arabelleğin görünür olup olmadığı mesajı görüntülenir .
(setq auto-revert-verbose nil)
, potansiyel olarak yerel olarak