Saya menggunakan use-package
untuk mengelola paket yang diinstal dan bind-key
untuk menetapkan tindakan ke tombol kustom yang saya suka.
Saya menimpa sebagian besar penjilidan kunci Emacs default (misalnya C-nmenjadi M-k, C-pmenjadi M-i), tapi saya OK dengan mode lain mengabaikan skema penjilidan kunci saya. Kadang-kadang, saya ingin pengikat kunci saya bertahan. Saya ingin M-kberarti sesuatu yang lain, daripada di default Gnus atau Helm.
Namun mereka semua bertentangan satu sama lain pada startup Emacs, karena saya tidak dapat menambahkan ikatan ke keymap, jika itu tidak ada (karena use-package
kadang-kadang menolak pemuatan paket). Misalnya, perintah berikut melempar kesalahan (misalnya (void-variable helm-map)
), karena Helm dan Gnus belum dimuat sepenuhnya.
(bind-key "M-Y" 'helm-end-of-buffer helm-map)
(bind-key "M-k" 'helm-next-line helm-find-files-map)
(bind-key "M-s" 'other-window gnus-summary-mode-map)
Saya memiliki semua use-package
doa saya di satu file dan bind-key
untuk keybindings kustom di file lain. Saya tidak ingin memasukkan binding ke dalam use-package
panggilan, karena mungkin saya ingin mempublikasikan skema pengikat kunci khusus saya sebagai paket mandiri. Bagaimana jika saya ingin seseorang menginstal skema saya dan Helm dan Gnus keybindings lokal saya juga diganti?
Bagaimana cara saya mengelola ikatan kunci mode-lokal menggunakan bind-key
, sehingga semua kunci diatur bahkan jika paket dimuat akhir-akhir ini, dan semua pengaturan kunci berada di dalam satu file?
sumber
Karena Anda sudah menggunakan bind-key, langsung dari dokumentasi
bind-key.el
:Formulir terakhir rusak jika keymap saat ini tidak terdefinisi karena file mendefinisikan
some-other-mode-map
belum dimuat. Jadi Anda bisa meletakkan ini dalamuse-package
forsome-other-mode
(paket mendefinisikansome-other-mode-map
), atau menggunakanwith-eval-after-load
:Alternatif lain akan mendefinisikan mode minor Anda sendiri yang berisi semua binding yang tidak boleh diganti oleh mode utama:
sumber