Get key binding from command
Sometimes I want to get key bindings of command for implementing like following command. Please see mini-buffer.
(where-is-internal func &optional map ...)
where-is-internal
returns list of keys of command(func
) from map. For example
(where-is-internal 'next-line global-map) ;; => ([14] [down])
[14]
is Control-n
and [down]
is down arrow key. Type of return value is list of key vector. It should be converted to human readable style.
(key-description key-vector)
key-description
returns a pretty description of key-sequence. For example
(key-description [14]) ;; => "C-n"
Write function
So we can write the function which returns human readable key sequence from the command
(cl-defun function-to-keybinds (func &optional (map global-map)) (key-description (car-safe (where-is-internal func map)))) (function-to-keybinds #'next-line) ;; => "C-n" (function-to-keybinds #'python-shell-send-string python-mode-map) ;; => "C-c C-s"