Mở khóa bằng cách sử dụng gói sử dụng


10

Tôi đang cố gắng hủy liên kết org-cycle-agenda-filesđược đặt theo mặc định C-'C-,.

Vũ khí của tôi để làm như vậy là gói sử dụng .

Trên trang github.com/use-package/bind-key.el tôi đã tìm thấy những dòng sau:

;; To unbind a key within a keymap (for example, to stop your favorite major
;; mode from changing a binding that you don't want to override everywhere),
;; use `unbind-key':
;;
;;   (unbind-key "c-c x" some-other-mode-map)

Điều này dẫn đến việc tôi không thành công khi thử các biến thể sau:

(unbind-key "C-'" )
(unbind-key "C-," )
(unbind-key "C-'" (org-cycle-agenda-files))
(unbind-key "C-," (org-cycle-agenda-files))
(bind-keys :map org-mode-map
       :unbind "C-'")
(unbind-key "C-'" org-cycle-agenda-files)

Sau thất bại đó, tôi đã thử một số giải pháp "truyền thống" cho vấn đề này.

Thông tin được tìm thấy trong hướng dẫn sử dụng gnu.org và một số câu trả lời emacs.stackexchange dẫn đến việc tôi tạo ra sự tàn phá vô ích:

(define-key (org-cycle-agenda-files) key nil)
(define-key (current-global-map) "C-'" nil)
(local-unset-key "C-'")
(global-unset-key "C-'")
(with-eval-after-load org-mode
  (unbind-key "C-'" org-mode-map)
  (unbind-key "C-," org-mode-map))
(global-set-key (kbd "C-'") 'nil)

Đúng .... Không có những biến thể vork. : D

Tôi rất thích tìm giải pháp dựa trên gói sử dụng , vì tôi đã sử dụng một số khả năng tuyệt vời của nó.

Bất kỳ loại đề nghị đều được chào đón.

Câu trả lời:


14

Nếu bạn C-h fvà nhập unbind-key, trợ giúp nói:

unbind-key là một macro Lisp được tải tự động trong `bind-key.el '.

(unbind-key KEY-NAME & KEYMAP tùy chọn)

Không có tài liệu.

Đối số thứ hai unbind-keylà một bản đồ chính - ví dụ org-mode-map.

Điều này làm việc cho tôi:

(require 'bind-key)
(unbind-key "C-," org-mode-map)
(unbind-key "C-'" org-mode-map)

Một nơi tốt để đặt này sẽ là :configphần của một use-packagehình thức.


4

Vâng, việc không ràng buộc trông không thanh lịch, nhưng đó là cách tiếp cận chính theo câu trả lời này .

Đối với gói sử dụng, tôi đã sử dụng unbind theo: init directive như vậy:

:init
(unbind-key "C-'" org-mode-map)
(unbind-key "C-," org-mode-map)

Bạn cần đặt cái này vào bên trong :config, và không :init, bởi vì trong :initsơ đồ phím có thể chưa được tải.
ギ ョ ー
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.