1

emacsのシェルモードでは、シェルモードを終了するための現在のキーバインディング('comint-interrupt-subjob)はであり、通常のLinuxシェルのよう"\C-c \C-c"に変更したいと思います。"\C-c"私は試した

(add-hook 'shell-mode-hook '(lambda ()
  (local-set-key "\C-c" 'comint-interrupt-subjob)
))

しかし、それは機能しませんでした。おそらく、に割り当てられたプレフィックスを無効にする必要があります"\C-c"。どうやってやるの?

4

2 に答える 2

2

これを試して:

(eval-after-load "shell"
  '(define-key shell-mode-map (kbd "C-c") 'comint-interrupt-subjob))

一般に、キーを定義するときは、必要なことを実行することを期待するのではなく、特定のキーマップでキーを定義する必要がありますlocal-set-key

注:私kbdはキーの説明に使用することを好みます。あなた"\C-c"は問題なく動作します。

于 2011-06-24T23:13:44.177 に答える
2
(define-key (current-local-map) "^C" 'comint-interrupt-subjob)

これにより、local-set-keyのエラーチェックなしで作業が実行されます

于 2011-06-24T23:19:24.537 に答える