Yanıtlar:
Aşağıdakileri yapabilirsiniz:
M-x
ibuffer
* /
Arabelleğe alınan modda işaretlemek için kullanılır.
D
onları silmek için.
C-x C-b
için ibuffer
.
t
( dired-toggle-marks
) düğmesine de basabilirsiniz ( önceden işaretlenmemişse).
dired-toggle-marks
adıdır dired komuta. Basmak t
değiştirilirken genellikle bu bağlamda mantıklı değil bu yüzden, ibuffer tüm işaretleri, ama genelde dired tampon outnumber olmayan dired tampon geçiş de olacaktır.
Tüm dired
tamponları öldürmek için başka bir işlev eklemek yerine, filtre gruplarından faydalanmanızı öneririm ibuffer
, tamponu birçok koşulla gruplandırmanıza izin verir.
Filtre gruplarını ayarlamak için bir örnek:
(setq-default ibuffer-saved-filter-groups
`(("Default"
;; I create a group call Dired, which contains all buffer in dired-mode
("Dired" (mode . dired-mode))
("Temporary" (name . "\*.*\*"))
)))
Sonra pencereyi C-x C-b
açın ibuffer
, şöyle bir şey görebilirsiniz:
Taşı imleç [ Dired ]
(ile M-p
, M-n
), sonra basın d
silme olarak işaretine
daha sonra x
yürütmek için basın .
Bu yolu tercih ediyorum çünkü anahtarımı yeni işleve nasıl bağlamamız gerektiğini düşünmeme gerek yok ve tamponlarım daha iyi organize oluyor.
ibuffer
Kodunuzu değerlendirdikten sonra ilk başlattığımda filtre grupları benim için görüntülenmedi . Ben vurmak zorunda kaldı / R
(bağlı ibuffer-switch-to-saved-filter-groups
grupların almak için).
(ibuffer-switch-to-saved-filter-groups "Default")
Bu kod satırını ibuffer hook'a ekleyebilirsiniz, değilse, filtre gruplarının adı değiştirilmelidirDefault
Hepsini bir noktada istediğin için çok fazla Dired tamponun var mı? IOW, sen mi istiyorsun ayrı tampon olarak onların her oluşturmak için?
Değilse, çözüm basittir: Dired'e, Dired'daRET
açmak için bir dizin adına bastığınızda mevcut bir Dired arabelleğini yeniden kullanmasını söyleyin.
İşte bunu nasıl yapacağınız:
Kitaplığı yükle Dired + ( dired+.el
):
(require 'dired+)
Dired’e Dired buffer’ları yeniden kullanma
(diredp-toggle-find-file-reuse-dir 1)
Bunun etkisi, RET
Dired'da bir dizindeki isabet (veya fareye tıkladığınızda) find-alternate-file
, bu nedenle orijinal Dired arabelleği yenisiyle değiştirilir (silinir).
Dired'da C-M-R
(aka C-M-S-r
) kullanarak bu davranışı istediğiniz zaman değiştirebilirsiniz .
Böyle bir şey (biraz kaydırma)?
(defun kill-dired-buffers ()
(interactive)
(mapc (lambda (buffer)
(when (eq 'dired-mode (buffer-local-value 'major-mode buffer))
(kill-buffer buffer)))
(buffer-list)))
Ayrıca şunları da kullanabilirsiniz helm-mini
:
M-x helm-mini
.*Di
(kısmi sözcük Dired
, daha fazla girmenize gerek yok). Siz yazdıkça, tamponlar adım adım daralır. Şimdi sadece Dired
tampon kaldı. M-a
Tümünü işaretlemek için tuşuna basın .TAB
eylem düğmesine basınız geçmek için K
eylem seçmek için Kill buffer(s)
.RET
İşlemi gerçekleştirmek için düğmesine basın .İşin iyi yanı helm-mini
normal Emacs'ın yerini alabilmesidir C-x b
, bu nedenle bir tane arabellek değiştirmek için diğeri gerçek bir arabellek yöneticisi için iki anahtar bağlama kullanmak zorunda kalmazsınız. helm-mini
hepsi bir arada. Dümen mini kılavuzumda daha fazlasını okuyun .
helm-mini
ayrıca bulanık eşleştirme tamponunu kullanabilir ve C-SPC
veya ile işaretleyerek çoklu tamponların açılmasına izin verebilir M-a
( M ark a ll için stand ). Ayrıca @
, bir şablonun önüne ekleyerek arabellek belirli bir dize içerecek şekilde daraltabilirsiniz , örneğin, @test
yalnızca "test" dizesini içeren arabelleklerin seçilmesi anlamına gelir.
Böyle bir şey denerdim:
(require 'dash)
(defun my-kill-dired-buffers ()
(interactive)
(kill-some-buffers
(-filter (lambda (buffer)
(save-excursion
(set-buffer buffer)
(eq major-mode 'dired-mode)))
(buffer-list))))
-filter
gerektirdiğine inanıyorum dash.el
. Muhtemelen bunu bir gereklilik olarak listelemelisiniz.
Aslında aradığınız şey, otomatik olarak istenmeyen arabellekleri temizlemenin bir yoludur; bu durumda midnight.el
, Emacs'in bir parçası olan, hangi siteye bakmalısınız ?
Ancak, genel olarak konuşmak gerekirse, ibuffer
Francisco’nun önerdiği gibi, arabelleklerde toplu çalışmayı çok kolaylaştırıyor.
Eğer kullanırsanız Icicles , o zaman kullanabilirsiniz C-x k
herhangi bir modda veya tüm tamponları - tüm dired tamponlarını öldürmek için.
Vurduktan sonra C-x k
, C-x M +
yalnızca belirli bir moda sahip tamponları tutmak için kullanın . TAB
Modları görmek için tuşuna basın ve seçin dired-mode
. Ardından , bu moddaki tüm tamponları C-!
öldürmek için kullanın .
C-x k C-x M + dired-mode C-!