कभी-कभी मेरी बफ़र सूची में 10+ dired विंडो होती हैं, और मैं अंत में buffer-menu
मैन्युअल रूप से चिह्नित करने और उन सभी को मारने का उपयोग करता हूं। क्या सभी खुली हुई खिडकियों को बंद करने का एक तेज़ तरीका है?
कभी-कभी मेरी बफ़र सूची में 10+ dired विंडो होती हैं, और मैं अंत में buffer-menu
मैन्युअल रूप से चिह्नित करने और उन सभी को मारने का उपयोग करता हूं। क्या सभी खुली हुई खिडकियों को बंद करने का एक तेज़ तरीका है?
जवाबों:
आप निम्नलिखित कर सकते हैं:
M-x
ibuffer
* /
बिंदीदार मोड में बफ़र्स चिह्नित करने के लिए।
D
उन्हें हटाने के लिए।
C-x C-b
करने के लिए ibuffer
।
t
( dired-toggle-marks
) भी दबा सकते हैं (यदि कोई भी पहले से चिह्नित नहीं था)।
dired-toggle-marks
का नाम है dired आदेश। दबाने t
से भी ibuffer में सभी निशान टॉगल हो सकते हैं, लेकिन गैर-बफ़र किए गए बफ़र्स आमतौर पर डेयर किए गए बफ़र्स को पछाड़ देते हैं, इसलिए टॉगल करना अक्सर इस संदर्भ में समझ में नहीं आता है।
सभी dired
बफ़र्स को मारने के लिए एक और फ़ंक्शन जोड़ने के बजाय , मेरा सुझाव है कि आप इसमें फ़िल्टर समूहों का लाभ उठाएँ ibuffer
, यह आपको कई स्थिति में समूह बफ़र की अनुमति देता है।
यहां फ़िल्टर समूहों को सेट करने के लिए एक उदाहरण दिया गया है:
(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 . "\*.*\*"))
)))
फिर C-x C-b
खुला ibuffer
खिड़की, आप कुछ इस तरह देख सकते हैं:
ले जाएँ कर्सर को [ Dired ]
(के साथ M-p
, M-n
), तो प्रेस d
हटाने के रूप में चिह्नित करने के लिए
फिर x
निष्पादित करने के लिए दबाएँ ।
मैं इस तरह से पसंद करता हूं क्योंकि मुझे यह सोचने की ज़रूरत नहीं है कि मुझे नए फ़ंक्शन के लिए अपनी कुंजी कैसे बांधनी चाहिए, और मेरे बफ़र्स बेहतर व्यवस्थित हैं।
ibuffer
आपके कोड का मूल्यांकन करने के बाद लॉन्च किया था, तो फ़िल्टर समूह मेरे लिए प्रदर्शित नहीं हुए थे । मुझे समूहों को प्राप्त करने के लिए / R
(बाध्य ibuffer-switch-to-saved-filter-groups
) होना पड़ा ।
(ibuffer-switch-to-saved-filter-groups "Default")
आप ibuffer हुक में कोड की इस पंक्ति को जोड़ सकते हैं, फ़िल्टर समूहों का नाम बदल दिया जाना चाहिए यदि यह नहीं हैDefault
क्या आपके पास कई डेयरेड बफ़र्स हैं क्योंकि आप उन सभी को एक बिंदु पर चाहते थे ? IOW, क्या आप उनमें से प्रत्येक को अलग-अलग बफ़र के रूप में बनाना चाहते हैं ?
यदि नहीं, तो समाधान सरल है: जब आप किसी निर्देशिका नाम को Dired में खोलने के लिए हिट करते हैं, तो एक मौजूदा Dired बफर का पुन: उपयोग करने के लिए Dired को बताएंRET
।
यहाँ है कि कैसे करना है:
लोड लाइब्रेरी Dired + ( dired+.el
):
(require 'dired+)
बताइए Dired बफ़र्स का फिर से उपयोग
(diredp-toggle-find-file-reuse-dir 1)
इसका प्रभाव यह है कि जब आप RET
Dired में किसी डायरेक्टरी पर हिट (या माउस को क्लिक करते हैं) find-alternate-file
का उपयोग किया जाता है, तो मूल Dired बफर को नए द्वारा बदल दिया जाता है (हटा दिया जाता है)।
आप इस व्यवहार को कभी भी टॉगल कर सकते हैं, C-M-R
(उर्फ C-M-S-r
) Dired में।
कुछ इस तरह (स्क्रॉल थोड़ा)?
(defun kill-dired-buffers ()
(interactive)
(mapc (lambda (buffer)
(when (eq 'dired-mode (buffer-local-value 'major-mode buffer))
(kill-buffer buffer)))
(buffer-list)))
आप यह भी उपयोग कर सकते हैं helm-mini
:
M-x helm-mini
।*Di
(आंशिक शब्द के लिए Dired
, अधिक दर्ज करने की आवश्यकता नहीं है)। जैसा कि आप टाइप करते हैं, बफ़र्स को आकस्मिक रूप से संकुचित किया जाता है। अब, केवल Dired
बफर बचा है। M-a
सभी को चिह्नित करने के लिए दबाएँ ।TAB
कार्रवाई मेनू और प्रेस करने के लिए स्विच करने के लिए K
कार्रवाई का चयन करने के Kill buffer(s)
।RET
कार्रवाई निष्पादित करने के लिए दबाएं ।इसके साथ अच्छी बात helm-mini
यह है कि यह सामान्य एमएसीएस को बदल सकता है C-x b
, इसलिए आपको दो प्रमुख बाइंडिंग का उपयोग नहीं करना होगा, एक बफर को स्विच करने के लिए और एक वास्तविक बफर मैनेजर के लिए। helm-mini
सभी में एक है। मेरे हेल्म-मिनी गाइड में और पढ़ें ।
helm-mini
फजी मैच बफर भी कर सकते हैं C-SPC
या M-a
( या एम आर्क ए एल के लिए खड़े होकर ) चिह्नित करके कई बफ़र्स खोलने की अनुमति दे सकते हैं । आप बफर को संकीर्ण भी कर सकते हैं @
एक पैटर्न से पहले जोड़कर कुछ स्ट्रिंग होती है , उदाहरण के लिए, @test
इसका मतलब है कि केवल बफ़र्स में स्ट्रिंग "परीक्षण" होता है।
मैं कुछ इस तरह की कोशिश करेंगे:
(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
आवश्यकता dash.el
है। आपको संभवतः एक आवश्यकता के रूप में सूची देनी चाहिए।
आप वास्तव में जिस चीज की तलाश कर रहे हैं, वह अवांछित बफ़र्स को स्वचालित रूप से साफ करने का एक तरीका है, इस मामले में आपको जांच करनी चाहिए midnight.el
, जो एमर्स का हिस्सा है।
लेकिन आम तौर पर बोलना, ibuffer
थोक में बफ़र्स पर काम करना बहुत आसान बनाता है, जैसा कि फ्रांसिस्को ने सुझाव दिया था।
यदि आप आइकल्स का उपयोग करते हैं , तो आप C-x k
किसी भी दिए गए मोड में सभी डेयरेड बफ़र्स - या सभी बफ़र्स को मारने के लिए उपयोग कर सकते हैं ।
मारने के बाद C-x k
, C-x M +
एक निश्चित मोड के साथ केवल बफ़र्स रखने के लिए उपयोग करें। TAB
मोड देखने के लिए मारो , और चुनें dired-mode
। फिर उस मोड के साथ सभी बफ़र्स C-!
को मारने के लिए उपयोग करें।
C-x k C-x M + dired-mode C-!