在所有打开的缓冲区中禁用次要模式


12

通常,我会打开许多​​缓冲区,并且由于某种原因,我不再希望对它们使用特定的次要模式。当前是否有内置方法来禁用所有打开的缓冲区的特定次要模式,或者这是否需要编写自定义elisp函数?

Answers:


19

除非次要模式(global-*-mode)附加了功能,否则这确实需要自定义elisp函数。

幸运的是,它是一个非常简单的函数:

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

要使用(例如on projectile-mode):

(global-disable-mode 'projectile-mode)

或以交互方式调用它:

M-x global-disable-mode RET projectile-mode

1
似乎可以工作!并且写得很好引导。非常感谢你。=)
holocronweaver

或者,如果只需要一次,则可以复制Eval函数的主体:在这种情况下,用'projectile-mode' M-S-; (dolist ....)替换mode-fn
Rudolf Olah
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.