]> git.eshelyaron.com Git - emacs.git/commitdiff
let bind-key accept vectors, add docstring
authorNoam Postavsky <npostavs@gmail.com>
Sun, 2 Mar 2014 01:16:59 +0000 (20:16 -0500)
committerNoam Postavsky <npostavs@gmail.com>
Sun, 2 Mar 2014 03:05:56 +0000 (22:05 -0500)
lisp/use-package/bind-key.el

index 1081486b99f4e787728dc1525878b9f147db29d1..5ef7570cdef14e2eb716f19378dba70218e122eb 100644 (file)
 (defvar personal-keybindings nil)
 
 (defmacro bind-key (key-name command &optional keymap)
+  "Bind KEY-NAME to COMMAND in KEYMAP (`global-map' if not passed).
+
+KEY-NAME may be a vector, in which case it passed straight to
+`define-key'. Or it may be a string to be interpreted as
+spelled-out keystrokes, e.g., \"C-c C-z\". See documentation of
+`edmacro-mode' for details."
   (let ((namevar (make-symbol "name"))
         (keyvar (make-symbol "key"))
         (bindingvar (make-symbol "binding"))
         (entryvar (make-symbol "entry")))
     `(let* ((,namevar ,(eval key-name))
-            (,keyvar (read-kbd-macro ,namevar))
+            (,keyvar (if (vectorp ,namevar) ,namevar
+                       (read-kbd-macro ,namevar)))
             (,bindingvar (lookup-key (or ,keymap global-map)
                                      ,keyvar)))
        (let ((,entryvar (assoc (cons ,namevar (quote ,keymap))