บ่อยครั้งที่ฉันเปิดบัฟเฟอร์จำนวนมากและไม่ว่าด้วยเหตุผลใดฉันไม่ต้องการใช้โหมดย่อยอีกต่อไปกับพวกเขา ขณะนี้มีวิธีที่มีอยู่แล้วภายในเพื่อปิดใช้งานโหมดย่อยเฉพาะสำหรับบัฟเฟอร์ที่เปิดอยู่ทั้งหมดหรือต้องการการเขียนฟังก์ชัน elisp แบบกำหนดเองหรือไม่
บ่อยครั้งที่ฉันเปิดบัฟเฟอร์จำนวนมากและไม่ว่าด้วยเหตุผลใดฉันไม่ต้องการใช้โหมดย่อยอีกต่อไปกับพวกเขา ขณะนี้มีวิธีที่มีอยู่แล้วภายในเพื่อปิดใช้งานโหมดย่อยเฉพาะสำหรับบัฟเฟอร์ที่เปิดอยู่ทั้งหมดหรือต้องการการเขียนฟังก์ชัน elisp แบบกำหนดเองหรือไม่
คำตอบ:
สิ่งนี้จะต้องใช้ฟังก์ชั่น 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
M-S-; (dolist ....)
และแทนที่mode-fn
ด้วย 'projectile-mode ในกรณีนี้