Розв’язування ключа за допомогою use-пакета


10

Я намагаюся відключити, org-cycle-agenda-filesякий встановлено за замовчуванням на C-'та C-,.

Моя зброя на вибір - це використання пакету пакетів.

На сторінці github.com/use-package/bind-key.el я знайшов такі рядки:

;; 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)

Це призвело до того, що я невдало намагався наступні варіанти:

(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)

Після цього невдачі я застосував якесь «традиційне» рішення проблеми.

Інформація, знайдена в посібнику gnu.org , і деякі відповіді на emacs.stackexchange призвели до того, що я спричинив наступну марну хаос:

(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)

Так .... Жодна з цих змін не змінюється. : D

Я хотів би знайти застосування-пакети рішення на основі, так як я вже використовую деякі з його дивовижних здібностей.

Будь-яка пропозиція вітається.

Відповіді:


14

Якщо ви C-h fвходите unbind-key, в довідці написано:

unbind-key - це автоматично завантажений макрос Lisp у `bind-key.el '.

(розв’язувальний ключ KEY-NAME та необов'язковий KEYMAP)

Не документально підтверджено.

Другий аргумент unbind-key- ключова карта - наприклад org-mode-map.

Це працює для мене:

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

Хорошим місцем для цього буде :configрозділ use-packageформи.


4

Так, розв'язування не виглядає елегантно, але це головний підхід відповідно до цієї відповіді .

Що стосується використання use-package, то я використовую функцію unbind під: init директивою так:

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

Потрібно помістити це всередину :config, а не :init, тому що в :initклавіші може ще не завантажуватися.
kotchwane
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.