Deaktivieren Sie den Nebenmodus in allen offenen Puffern

12

Oft habe ich viele Puffer geöffnet und möchte aus irgendeinem Grund keinen bestimmten Nebenmodus mehr mit ihnen verwenden. Gibt es derzeit eine integrierte Möglichkeit, einen bestimmten Nebenmodus für alle offenen Puffer zu deaktivieren, oder muss hierfür eine benutzerdefinierte Elisp-Funktion geschrieben werden?

holocronweaver
quelle

Antworten:

19

Dies erfordert eine benutzerdefinierte Elisp-Funktion, es sei denn, dem Nebenmodus ist eine (global-*-mode)Funktion zugeordnet.

Zum Glück ist es eine ziemlich einfache Funktion:

(defun global-disable-mode (mode-fn)
  "Disable `MODE-FN' in ALL buffers."
  (interactive "a")
  (dolist (buffer (buffer-list))
    (with-current-buffer buffer
      (funcall mode-fn -1))))

So verwenden Sie (zum Beispiel am projectile-mode):

(global-disable-mode 'projectile-mode)

Oder rufen Sie es interaktiv auf:

M-x global-disable-mode RET projectile-mode
J David Smith
quelle
1
Scheint zu funktionieren! Und schön geschrieben, um zu booten. Vielen Dank. =)
holocronweaver
Alternativ können Sie, wenn Sie dies nur einmal benötigen, den Funktionskörper von Eval kopieren: M-S-; (dolist ....)und mode-fnin diesem Fall durch 'projectile-mode' ersetzen .
Rudolf Olah