我想更改 Ctrl - d 键的行为。所以它会向后删除一个单词。我创建了一个函数:
(defun backward-delete-word (arg)
"Delete characters backward until encountering the beginning of a word.
With argument ARG, do this that many times."
(interactive "p")
(delete-region (point) (progn (backward-word arg) (point))))
然后将其插入emacs.d
:
(global-set-key (kbd "\C-d") 'backward-delete-word)
它在基本模式下工作,但在php模式下它只删除下一个字符。当我点击
Ctrl -h k Ctrl-d
Emacs给出了这个:
C-d runs the command c-electric-delete-forward, which is an
interactive compiled Lisp function in `cc-cmds.el'.
It is bound to C-d.
(c-electric-delete-forward ARG)
不知何故,它被重置为另一个功能。如何找出它,重置的地方,并使其与我的功能一起工作?
答案 0 :(得分:2)
我没有php-mode
所以我不能肯定地说,但是绑定可能会在php-mode-map
中覆盖(作为主要模式地图,其优先级高于全局地图)。
您可以使用 Ch b 检查列出所有可用的键绑定,并在输出缓冲区中查找C-d
或c-electric-delete-forward
,以查看绑定定义的键映射
假设php-mode-map
覆盖 C-d 绑定,您可以使用
(define-key php-mode-map (kbd "C-d") nil)