के बराबर एक है मैं सभी dired बफर, जो मैं सूर्योदय कमांडर में उपयोग करना चाहते हैं बंद करने के लिए एक टुकड़ा मिला:जांच करें कि प्रमुख मोड कई Emacs
(defun er/kill-all-dired-buffers()
"Kill all dired buffers."
(interactive)
(save-excursion
(let((count 0))
(dolist(buffer (buffer-list))
(set-buffer buffer)
(when (equal major-mode 'sr-mode)
(or (equal major-mode 'dired-mode))
(setq count (1+ count))
(kill-buffer buffer)))
(message "Killed %i dired buffer(s)." count))))
(setq sr-quit-hook 'er/kill-all-dired-buffers)
जारी किया जा रहा है, मैं इसे दोनों काम नहीं कर सकता एसआर-मोड और डायर मोड के लिए एक साथ। मैं कैसे जांचूं "अगर प्रमुख मोड एसआर-मोड या डायर-मोड है"?
संपादित करें: बस एक वाक्यविन्यास त्रुटि। होना चाहिए
(when (or (equal major-mode 'dired-mode) (equal major-mode 'sr-mode))
यह बहुत सहज नहीं है स्वीकार करने के लिए है।
हां हां, कि मैं क्या याद आ रही थी है। – CrimsonKing
यह पूरी तरह से सहज है। आपका मूल कोड 'if (foo) {|| लिखना है बार; baz(); } 'सी – Sean
में यह सहज नहीं है। आश्वस्त नहीं। अंतर्ज्ञानी होगा अगर (foo || बार) {baz(); }। – CrimsonKing