如何找到在 emacs 中定义键绑定的位置?
how to find where a key binding is defined in emacs?
shift + m
以某种方式绑定到 emacs 中的 Meta
键。现在我无法输入任何以 M
开头的单词,例如 Mock
。我想找出发生这种情况的原因或导致这种情况的软件包。
关于这个问题有 one question 但没有解决这个问题。
我试过 C h k m
结果显示 m runs command self-insert-command
但是当我尝试 C h k M
时,它正在激活 Meta
键并正在等待另一个键的输入。
C h c M
也是如此。
有什么方法可以找出造成这种情况的原因吗?
更新:
我的 emacs 配置 https://github.com/ChillarAnand/.emacs.d
问题未出现在 OS 级别。如果我用 emacs -Q
启动 emacs,一切正常。
问题是 code
(define-key smartparens-mode-map (kbd "M up") nil)
(define-key smartparens-mode-map (kbd "M down") nil)))
这不会将 shift m
绑定为 Meta
,而是将键序列 M u p
和 M d o w n
绑定到 nil
。要在 kbd
中指定 Meta 使用 M-{the key}
,要指定 up 使用 <up>
,对于中的代码问题:
(define-key smartparens-mode-map (kbd "M-<up>") nil)
(define-key smartparens-mode-map (kbd "M-<down>") nil)))
在我的 .emacs 开头添加这个对我有用:
(let ((old-func (symbol-function 'define-key))
(bindings-buffer (get-buffer-create "*Bindings*")))
(defun define-key (keymap key def)
(with-current-buffer bindings-buffer
(insert (format "%s -> %s\n" key def))
(mapbacktrace (lambda (evald func args flags)
(insert (format "* %s\n" (cons func args))))))
(funcall old-func keymap key def)))
shift + m
以某种方式绑定到 emacs 中的 Meta
键。现在我无法输入任何以 M
开头的单词,例如 Mock
。我想找出发生这种情况的原因或导致这种情况的软件包。
关于这个问题有 one question 但没有解决这个问题。
我试过 C h k m
结果显示 m runs command self-insert-command
但是当我尝试 C h k M
时,它正在激活 Meta
键并正在等待另一个键的输入。
C h c M
也是如此。
有什么方法可以找出造成这种情况的原因吗?
更新:
我的 emacs 配置 https://github.com/ChillarAnand/.emacs.d
问题未出现在 OS 级别。如果我用
emacs -Q
启动 emacs,一切正常。
问题是 code
(define-key smartparens-mode-map (kbd "M up") nil)
(define-key smartparens-mode-map (kbd "M down") nil)))
这不会将 shift m
绑定为 Meta
,而是将键序列 M u p
和 M d o w n
绑定到 nil
。要在 kbd
中指定 Meta 使用 M-{the key}
,要指定 up 使用 <up>
,对于中的代码问题:
(define-key smartparens-mode-map (kbd "M-<up>") nil)
(define-key smartparens-mode-map (kbd "M-<down>") nil)))
在我的 .emacs 开头添加这个对我有用:
(let ((old-func (symbol-function 'define-key))
(bindings-buffer (get-buffer-create "*Bindings*")))
(defun define-key (keymap key def)
(with-current-buffer bindings-buffer
(insert (format "%s -> %s\n" key def))
(mapbacktrace (lambda (evald func args flags)
(insert (format "* %s\n" (cons func args))))))
(funcall old-func keymap key def)))