use-package를 사용하여 바인딩 해제 키


10

org-cycle-agenda-files기본적으로 C-'and로 설정된 바인드 해제 를 시도 하고 C-,있습니다.

내가 선택한 무기는 use-package 패키지입니다.

github.com/use-package/bind-key.el 페이지 I 라인 아래의 발견 :

;; 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 manual 과 일부 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)

그렇습니다 .... 이러한 변형은 없습니다. :디

이미 멋진 기능 중 일부를 사용하고 있기 때문에 사용 패키지 기반 솔루션 을 찾고 싶습니다.

어떤 종류의 제안이라도 환영합니다.

답변:


14

C-h f입력하고을 입력 unbind-key하면 도움말에 다음 과 같이 표시됩니다.

unbind-key는`bind-key.el '에 자동로드 된 Lisp 매크로입니다.

(바인딩 해제 키 KEY-NAME 및 선택적 KEYMAP)

문서화되지 않았습니다.

두 번째 주장 unbind-key은 예를 들어 주요지도 org-mode-map입니다.

이것은 나를 위해 작동합니다 :

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

이것을 넣을 수있는 좋은 장소 :configuse-package양식 의 섹션입니다 .


4

그래, 언 바인딩은 우아해 보이지 않지만,이 답변 에 따른 주요 접근 방식 입니다.

use-package와 관련하여 : init 지시문에서 unbind를 다음과 같이 사용했습니다.

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

이 내부를 둘 필요가 :config, 그리고 :init에 있기 때문에, :init키 맵 아직로드되지 않을 수 있습니다.
kotchwane
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.