Emacs: funzione che annota un codice elisp che aggiunge un keybinding specificato dall'utente

StackOverflow https://stackoverflow.com/questions/1406581

  •  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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top