ปิดใช้งานโหมดรองในบัฟเฟอร์ที่เปิดอยู่ทั้งหมด


12

บ่อยครั้งที่ฉันเปิดบัฟเฟอร์จำนวนมากและไม่ว่าด้วยเหตุผลใดฉันไม่ต้องการใช้โหมดย่อยอีกต่อไปกับพวกเขา ขณะนี้มีวิธีที่มีอยู่แล้วภายในเพื่อปิดใช้งานโหมดย่อยเฉพาะสำหรับบัฟเฟอร์ที่เปิดอยู่ทั้งหมดหรือต้องการการเขียนฟังก์ชัน elisp แบบกำหนดเองหรือไม่

คำตอบ:


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 ในกรณีนี้
Rudolf Olah
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.