นี่เป็นวิธีทั่วไปในการตั้งค่าการโยงคีย์เฉพาะบัฟเฟอร์
- สร้างโหมดย่อยชั่วคราว (เซฟไว้ด้านล่าง snippet ไป
temp-mode.el
และในของคุณrequire
init.el
- เปิดใช้งาน
temp-mode
โหมดย่อยนั้นและกำหนดว่าแผนที่หลักของโหมดรองในบัฟเฟอร์ที่คุณต้องการเท่านั้น
วางLocal Variables
ตัวอย่างด้านล่างในบัฟเฟอร์ที่คุณต้องการผูกกุญแจที่กำหนดเอง ด้านล่างเป็นตัวอย่างของorg-mode
ไฟล์
ในบัฟเฟอร์ ONE
# Local Variables:
# eval: (temp-mode 1)
# eval: (define-key temp-mode-map (kbd "<f10>") 'function-ONE)
# End:
ถ้ามีบัฟเฟอร์อื่นนิยามใหม่การผูกคีย์เดียวกันโดยใช้
ในบัฟเฟอร์ TWO
# Local Variables:
# eval: (temp-mode 1)
# eval: (define-key temp-mode-map (kbd "<f10>") 'function-TWO)
# End:
M-x revert-buffer
แล้วใหม่ผูกพันกลายเป็นที่มีประสิทธิภาพในการทำ
นี่คือสิ่งที่ฉันจะทำถ้าฉันต้องการสลับระหว่างบัฟเฟอร์สองตัวนี้บ่อยมากและถ้าฉันต้องใช้การF10รวมใน:
- ทำงานในบัฟเฟอร์หนึ่ง
C-x C-s
(บันทึก) และสลับไปที่บัฟเฟอร์สอง
revert-buffer
(รีเฟรชการเชื่อมโยง) ทำงานในบัฟเฟอร์ TWO C-x C-s
และเปลี่ยนเป็นบัฟเฟอร์ ONE
revert-buffer
(รีเฟรชการเชื่อมโยง) ทำงานในบัฟเฟอร์ที่หนึ่งC-x C-s
และสลับไปที่บัฟเฟอร์สอง
แต่ฉันอยากจะผูกคำสั่งบัฟเฟอร์เฉพาะที่แตกต่างกับคีย์ที่แตกต่างกัน
โหมดรองชั่วคราว
;; temp-mode.el
;; Temporary minor mode
;; Main use is to enable it only in specific buffers to achieve the goal of
;; buffer-specific keymaps
(defvar temp-mode-map (make-sparse-keymap)
"Keymap while temp-mode is active.")
;;;###autoload
(define-minor-mode temp-mode
"A temporary minor mode to be activated only specific to a buffer."
nil
:lighter " Temp"
temp-mode-map)
(provide 'temp-mode)