Emacs无法重置Ctrl-d键行为

时间:2013-02-05 09:13:12

标签: emacs

我想更改 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)

不知何故,它被重置为另一个功能。如何找出它,重置的地方,并使其与我的功能一起工作?

1 个答案:

答案 0 :(得分:2)

我没有php-mode所以我不能肯定地说,但是绑定可能会在php-mode-map中覆盖(作为主要模式地图,其优先级高于全局地图)。

您可以使用 Ch b 检查列出所有可用的键绑定,并在输出缓冲区中查找C-dc-electric-delete-forward,以查看绑定定义的键映射

假设php-mode-map覆盖 C-d 绑定,您可以使用

禁用它
(define-key php-mode-map (kbd "C-d") nil)