Emacs: Funktion, die einen elisp Code schreibt, die eine Keybinding vom Benutzer angegebenen fügt
-
05-07-2019 - |
Frage
Wie kann ich eine interaktive Funktion machen, die interaktiv einen Schlüssel vom Benutzer gelesen (wie beim Drücken von C-hk) und schreibe dann eine Zeile wie diese:
(global-set-key (kbd "C-x C-s") 'hello)
, wo die "C-x C-s" Teil in geeigneter Weise mit dem Leseschlüssel ersetzt wird.
Einige beginnen Benutzer haben Probleme machen keybindings und in der Tat ich verwirrt darüber zu, so dachte ich, lass es einfach automatisieren.
Lösung
Dies scheint zu funktionieren:
(defun insert-key (key)
(interactive (list (read-key-sequence "Key: ")))
(insert "(global-set-key (kbd \"" (key-description key) "\") 'hello)\n"))
Andere Tipps
Hä? Vielleicht die Frage, die ich bin Missverständnis, aber wenn nicht, ist dies die Antwort: global-set-key
ist ein Befehl . Und es tut genau das, was beantragt wird (IIUC.): Er liest eine Tastenfolge (Typen, klicken, etc.), und dann liest er den Befehl, um die Schlüsselsequenz zu binden