Emacs: funzione che annota un codice elisp che aggiunge un keybinding specificato dall'utente
-
05-07-2019 - |
Domanda
Come posso creare una funzione interattiva che legga interattivamente un tasto dall'utente (come quando si preme C-h k) e quindi scrive una riga come questa:
(global-set-key (kbd "C-x C-s") 'hello)
dove il simbolo "C-x C-s" la parte viene sostituita in modo appropriato con la chiave di lettura.
Alcuni utenti principianti hanno problemi a creare combinazioni di tasti e in effetti anche io mi confondo al riguardo, quindi ho pensato di automatizzarlo.
Soluzione
Questo sembra funzionare:
(defun insert-key (key)
(interactive (list (read-key-sequence "Key: ")))
(insert "(global-set-key (kbd \"" (key-description key) "\") 'hello)\n"))
Altri suggerimenti
Eh? Forse sto fraintendendo la domanda, ma in caso contrario, questa è la risposta: global-set-key
è un comando . E fa esattamente ciò che è richiesto (IIUC): legge una sequenza di tasti (tipo, clic, ecc.), Quindi legge il comando a cui associare la sequenza di tasti.