Отключить второстепенный режим во всех открытых буферах

12

Часто у меня открыто много буферов, и по какой-то причине я больше не хочу использовать с ними какой-то особенный второстепенный режим. Есть ли в настоящее время встроенный способ отключить определенный второстепенный режим для всех открытых буферов, или для этого требуется написать пользовательскую функцию elisp?

holocronweaver
источник

Ответы:

19

Это требует специальной функции elisp, если только к второстепенному режиму не (global-*-mode)прикреплена функция.

К счастью, это довольно простая функция:

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

Использовать (например, на projectile-mode):

(global-disable-mode 'projectile-mode)

Или назовите это интерактивно:

M-x global-disable-mode RET projectile-mode
Дж Дэвид Смит
источник
1
Кажется, работает! И красиво написано для загрузки. Большое спасибо. =)
Holocronweaver
в качестве альтернативы, если вам нужен только один раз, вы можете просто скопировать Eval тело функции: M-S-; (dolist ....)и заменить mode-fnна 'projectile-mode в этом случае.
Рудольф Олах