Kunci tidak mengikat menggunakan paket-gunakan

10

Saya mencoba unbind org-cycle-agenda-filesyang diatur secara default ke C-'dan C-,.

Senjata pilihan saya untuk melakukannya adalah paket penggunaan- paket.

Pada halaman github.com/use-package/bind-key.el saya telah menemukan baris berikut:

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

Ini mengakibatkan saya gagal mencoba variasi berikut:

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

Setelah itu gagal saya mencoba beberapa solusi "tradisional" untuk masalah ini.

Informasi ditemukan di manual gnu.org , dan beberapa emacs.stackexchange jawaban mengakibatkan saya menghasilkan kekacauan yang tidak berguna berikut:

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

Yap .... Tidak ada variasi ini vorks. : D

Saya akan senang menemukan solusi berbasis paket penggunaan , karena saya sudah menggunakan beberapa kemampuan yang luar biasa.

Segala jenis saran diterima.

Pikiran kosong
sumber

Jawaban:

14

Jika Anda C-h fdan masuk unbind-key, bantuan mengatakan:

unbind-key adalah makro Lisp autoloaded di `bind-key.el '.

(unbind-key KEY-NAME & KEYMAP opsional)

Tidak didokumentasikan.

Argumen kedua unbind-keyadalah peta kunci - misalnya org-mode-map.

Ini bekerja untuk saya:

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

Tempat yang baik untuk meletakkan ini adalah :configbagian dari use-packageformulir.

Greg Hendershott
sumber
4

Ya tidak mengikat tidak terlihat elegan, tapi itulah pendekatan utama menurut jawaban ini .

Sedangkan untuk paket-penggunaan, saya telah menggunakan unbind di bawah: init directive seperti:

:init
(unbind-key "C-'" org-mode-map)
(unbind-key "C-," org-mode-map)
Pengguna Emacs
sumber
Anda perlu memasukkan ini ke dalam :config, dan tidak :init, karena di :initkeymap mungkin belum dimuat.
ギ ョ ー ム