1

Ctrl--keyの動作を変更したかったの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)

どういうわけか、別の機能にリセットされました。リセットされた場所を見つけて、代わりに私の関数で動作させる方法は?

4

1 に答える 1

2

私は持っていないphp-modeので、はっきりとは言えませんが、バインディングはオーバーライドされる可能性がありますphp-mode-map(メジャーモードマップとして、グローバルマップよりも優先されます)。

を使用して、使用C-h b可能なすべてのキーバインディングを一覧表示し、出力バッファを検索するC-dc-electric-delete-forward、出力バッファを検索して、バインディングが定義されているキーマップを確認できます。

バインディングをphp-mode-mapオーバーライドすると仮定すると、を使用して無効にすることができますC-d

(define-key php-mode-map (kbd "C-d") nil)
于 2013-02-05T09:44:05.020 に答える