Use-package kullanarak anahtarı ayırma


10

Ben unbind çalışıyorum org-cycle-agenda-filesvarsayılan olarak ayarlandığı C-'ve C-,.

Bunu yapmak için seçtiğim silahım kullanım paketi paketi.

Açık github.com/use-package/bind-key.el sayfa çizgilerin aşağıdaki bulduk:

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

Bu, varyasyonları aşağıdaki şekilde denememe neden oldu:

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

Bu başarısızlıktan sonra soruna "geleneksel" bir çözüm önerdim.

Gnu.org el kitabında bulunan bilgiler ve bazı emacs.stackexchange cevapları aşağıdaki işe yaramaz yıkımı üretmeme neden oldu:

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

Evet .... Hiçbiri bu varyasyonlar vorks. : D

Zaten bazı harika yeteneklerini kullandığım için kullanım paketi tabanlı bir çözüm bulmak isterim.

Her türlü öneri kabul edilir.

Yanıtlar:


14

Siz C-h fve girerseniz unbind-keyyardım der ki:

unbind-key, bind-key.el dosyasında otomatik olarak yüklenen bir Lisp makrosudur.

(unbind-key KEY-NAME ve isteğe bağlı KEYMAP)

Belgelenmedi.

İkinci argüman unbind-keyanahtar bir haritadır - örneğin org-mode-map.

Bu benim için çalışıyor:

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

Bunu koymak için iyi bir yer :configbir use-packageformun bölümü olacaktır .


4

Evet, ayırmak zarif görünmüyor, ancak bu cevaba göre ana yaklaşım bu .

Kullanım paketi gelince, unbind under: init yönergesini şu şekilde kullanıyorum:

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

Bunu içine koymanız gerekir :config, değil :init, çünkü :inittuş haritasına henüz yüklenmemiş olabilir.
kotchwane
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.