Desactiva el modo menor en todos los búferes abiertos

12

A menudo tengo muchos buffers abiertos y, por cualquier razón, ya no deseo usar un modo menor en particular con ellos. ¿Existe actualmente una forma integrada de deshabilitar un modo menor particular para todos los búferes abiertos, o esto requiere escribir una función elisp personalizada?

Tejedor de holocrón
fuente

Respuestas:

19

Esto requiere una función de elisp personalizada a menos que el modo menor tenga una (global-*-mode)función adjunta.

Afortunadamente, es una función bastante simple:

(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))))

Para usar (por ejemplo, en projectile-mode):

(global-disable-mode 'projectile-mode)

O llámalo interactivamente:

M-x global-disable-mode RET projectile-mode
J David Smith
fuente
1
¡Parece funcionar! Y bien escrito para arrancar. Muchas gracias. =)
holocronweaver
alternativamente, si solo necesita esto una vez, simplemente puede copiar Evaluar el cuerpo de la función: M-S-; (dolist ....)y reemplazar mode-fncon 'modo proyectil en este caso.
Rudolf Olah