Đây là một cách chung để đặt các ràng buộc khóa dành riêng cho bộ đệm.
- Tạo một chế độ nhỏ tạm thời (lưu đoạn mã dưới đây
temp-mode.el
và require
nó trong của bạn init.el
.
- Cho phép
temp-mode
chế độ nhỏ đó và xác định sơ đồ bàn phím của chế độ phụ đó chỉ trong (các) bộ đệm bạn cần.
Đặt Local Variables
đoạn mã dưới đây vào bộ đệm nơi bạn muốn liên kết khóa tùy chỉnh. Dưới đây là ví dụ về org-mode
các tập tin.
Trong bộ đệm MỘT
# Local Variables:
# eval: (temp-mode 1)
# eval: (define-key temp-mode-map (kbd "<f10>") 'function-ONE)
# End:
Nếu một số bộ đệm khác xác định lại cùng một ràng buộc khóa bằng cách sử dụng,
Trong bộ đệm HAI
# Local Variables:
# eval: (temp-mode 1)
# eval: (define-key temp-mode-map (kbd "<f10>") 'function-TWO)
# End:
sau đó ràng buộc mới trở nên hiệu quả trong việc làm M-x revert-buffer
.
Đây là những gì tôi sẽ làm nếu tôi cần phải chuyển đổi giữa hai bộ đệm này rất thường xuyên và nếu tôi phải sử dụng F10ràng buộc trong cả hai:
- Làm việc trong bộ đệm ONE,
C-x C-s
(lưu) và chuyển sang bộ đệm TWO
revert-buffer
(làm mới các ràng buộc), làm việc trong bộ đệm TWO C-x C-s
và chuyển sang bộ đệm ONE
revert-buffer
(làm mới các ràng buộc), làm việc trong bộ đệm ONE C-x C-s
và chuyển sang bộ đệm TWO
Nhưng tôi muốn liên kết các lệnh cụ thể bộ đệm khác nhau với các khóa khác nhau.
Chế độ nhỏ tạm thời
;; 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)