Nonaktifkan mode minor di semua buffer terbuka

12

Seringkali saya memiliki banyak buffer terbuka dan, untuk alasan apa pun, saya tidak lagi ingin menggunakan mode minor tertentu dengan mereka. Apakah saat ini terdapat cara bawaan untuk menonaktifkan mode minor tertentu untuk semua buffer terbuka, atau apakah ini mengharuskan penulisan fungsi elisp khusus?

holocronweaver
sumber

Jawaban:

19

Ini memang membutuhkan fungsi elisp khusus kecuali mode minor memiliki (global-*-mode)fungsi yang melekat padanya.

Untungnya, ini adalah fungsi yang cukup sederhana:

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

Untuk menggunakan (misalnya, pada projectile-mode):

(global-disable-mode 'projectile-mode)

Atau menyebutnya secara interaktif:

M-x global-disable-mode RET projectile-mode
J David Smith
sumber
1
Tampaknya bekerja! Dan ditulis dengan baik untuk boot. Terima kasih banyak. =)
holocronweaver
sebagai alternatif, jika Anda hanya perlu ini sekali saja, Anda bisa menyalin Eval body dari fungsi: M-S-; (dolist ....)dan ganti mode-fndengan 'projectile-mode dalam kasus ini.
Rudolf Olah