Apakah mungkin untuk mengatur binding kunci spesifik ke buffer?
Saya memiliki yang berikut ini di salah satu file org saya:
# Local Variables:
# eval: (local-set-key (kbd "<f10>") 'some-custom-defun-specific-to-this-buffer)
# End:
Namun pengikatan ini juga berlaku untuk file mode-org lainnya. Jika saya membuka file dengan mode utama berbeda, maka kunci default saya mengikat.
Sepertinya local-set-key
pengaturan binding khusus untuk mode-utama tidak spesifik untuk buffer.
Bagaimana saya bisa memiliki binding yang hanya aktif di buffer tertentu?
key-bindings
keymap
file-local-variables
Kaushal Modi
sumber
sumber
local-unset-key
terhubung denganorg-mode-hook
mungkin berfungsi jika itu dieksekusi sebelumLocal Variables:
bagian tersebut.Local Variables:
Jawaban:
Untuk penutupan, inilah jawaban yang mengembang atas komentar saya. Saya mendefinisikan mode minor dengan keybinding yang diperlukan dan beralih di buffer yang diperlukan menggunakan variabel file lokal.
Anda dapat mengaktifkannya di file yang diperlukan dengan mengatur bagian variabel lokal di akhir file sebagai berikut. Anda juga dapat mengubah atau menambahkan ikatan tombol di sini. Anda masih perlu mendefinisikan mode minor yang berbeda untuk setiap buffer yang memetakan urutan kunci yang sama untuk perintah yang berbeda.
sumber
eval-buffer: Symbol's value as variable is void: my-org-buffer-local-mode-map
ketika saya mencoba menjalankan ini(define-minor-mode my-org-buffer-local-mode "Minor mode to simulate buffer local keybindings." :init-value nil) (define-key my-org-buffer-local-mode-map (kbd "<f10>") 'some-custom-defun-specific-to-this-buffer)
:keymap
kata kunci, periksa nullprogram.com/blog/2013/02/06Berikut adalah cara umum untuk mengatur binding kunci spesifik buffer.
temp-mode.el
danrequire
di dalaminit.el
.temp-mode
mode minor itu dan tentukan keymap mode-minor itu hanya di buffer yang Anda butuhkan.Letakkan
Local Variables
cuplikan di bawah di buffer tempat Anda ingin pengikatan kunci khusus. Di bawah ini adalah contohorg-mode
file.Dalam buffer ONE
Jika beberapa buffer lain mendefinisikan ulang menggunakan pengikatan kunci yang sama,
Dalam buffer DUA
maka pengikatan baru menjadi efektif dalam melakukan
M-x revert-buffer
.Inilah yang akan saya lakukan jika saya harus sering beralih di antara dua buffer ini dan jika saya harus menggunakan F10penjilidan di keduanya:
C-x C-s
(simpan) dan beralih ke buffer TWOrevert-buffer
(menyegarkan binding), bekerja di buffer DUA,C-x C-s
dan beralih ke buffer ONErevert-buffer
(menyegarkan binding), bekerja di buffer ONE,C-x C-s
dan beralih ke buffer TWOTetapi saya lebih suka mengikat perintah buffer-specific yang berbeda ke kunci yang berbeda.
Mode minor sementara
sumber