Menggunakan tombol fungsi sebagai kunci pengubah "lengket"


10

Apakah ada cara untuk menggunakan tombol fungsi (seperti <f8>) sebagai semacam peristiwa kunci-super dan kemudian memiliki penekanan tombol berikutnya (mis. S) kemudian diinterpetasi sebagai s-s? Dengan kata lain, ini akan mirip dengan kunci pengubah lengket, tetapi hanya untuk emacs, bukan os itu sendiri.

Saya tahu tentang mode kunci-kunci dan fakta bahwa Anda dapat menggunakan kombinasi tombol seperti ini (global-set-key (kbd "<f8> b t") 'undo)untuk menghemat pintasan keyboard. Tapi saya ingin sesuatu yang berfungsi dengan binding saya yang ada ke kunci super dan tidak mengharuskan saya untuk mengikat semuanya dua kali di masa depan (mis. Satu mengikat untuk kunci super dan satu untuk tombol fungsi).

Jawaban:


14

Jika alur kerja Anda adalah:

  1. tekan dan lepaskan F8
  2. Tekan dan lepaskan s, harapkan itu memicu pengikatan untuks-s
  3. Tombol apa pun yang Anda tekan setelahnya tidak memiliki spengubah kecuali Anda menekan F8lagi

maka fitur ini ada di Emacs sendiri . Ini terikat C-x @ ssecara default (jelas hanya dimaksudkan untuk penggunaan yang sangat sesekali). Perintah ini event-apply-super-modifier(fungsi yang sama ada untuk control, shift, meta, altdan hyper). Bindings default ada di function-key-map, yang ditimpa oleh binding di keymap global atau lokal. Anda dapat menggunakan key-translation-mapsebagai gantinya jika Anda ingin menerapkan arti-pengubah untuk diutamakan.

(define-key function-key-map [f8] 'event-apply-super-modifier)

Lebih banyak alasan untuk mencintai Emacs!
A. Blizzard
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.