2009-09-10 6 views
3

Comment faire une fonction interactive qui lit de façon interactive une clé de l'utilisateur (comme lorsque vous appuyez sur Ch k) et écrit ensuite une ligne comme celle-ci Où la partie «Cx Cs» est remplacée de manière appropriée par la clé de lecture.Emacs: fonction qui écrit un code elisp qui ajoute une liaison de touches spécifiée par l'utilisateur

Some beginning users have problem making keybindings et en fait je suis confus à ce sujet aussi, alors j'ai pensé que nous allons simplement l'automatiser.

+2

Alors que l'automatisation aidera un peu, je pense que le problème le plus fréquent est que (nouveaux) utilisateurs oublient/ne savent pas que «interactive» est nécessaire pour les commandes. –

Répondre

5

Cela semble fonctionner:

(defun insert-key (key) 
    (interactive (list (read-key-sequence "Key: "))) 
    (insert "(global-set-key (kbd \"" (key-description key) "\") 'hello)\n")) 
0

Huh? Peut-être que je suis mal compris la question, mais si non, c'est la réponse: global-set-key est commande. Et il fait juste ce qui est demandé (IIUC): Il lit une séquence de touches (type, clic, etc.), puis il lit la commande pour lier la séquence de touches à.

Questions connexes