ho trovato un frammento di chiudere tutti i buffer dired, che voglio usare in comandante alba:Controllare se la modalità principale è uguale uno dei diversi 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)
Problema di essere, non riesco a farlo funzionare sia per sr-mode e dired-mode insieme. Come si verifica "se la modalità principale è sr-mode OR modalità dired"?
EDIT: Basta un errore di sintassi. Dovrebbe essere
(when (or (equal major-mode 'dired-mode) (equal major-mode 'sr-mode))
devo ammettere che non è troppo intuitivo.
sì sì, questo è quello che mi mancava. – CrimsonKing
È perfettamente intuitivo. Il tuo codice originale è come scrivere 'if (foo) {|| bar; baz(); } 'in C. – Sean
Anche questo non è intuitivo. Non convinto. Intuitivo sarebbe se (foo || bar) {baz(); }. – CrimsonKing