Отключение привязки префиксного ключа - PullRequest
1 голос
/ 25 июня 2011

В режиме оболочки в emacs текущая привязка ключа для выхода из режима оболочки ('comint-interrupt-subjob) равна "\C-c \C-c", и я хочу изменить его на "\C-c", как в обычной оболочке linux.Я пытался

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

Но это не сработало.Вероятно, мне нужно отключить префикс, присвоенный "\C-c".Как я могу это сделать?

Ответы [ 2 ]

2 голосов
/ 25 июня 2011
(define-key (current-local-map) "^C" 'comint-interrupt-subjob)

Это сделает работу без проверки ошибок локального набора ключей

2 голосов
/ 25 июня 2011

Попробуйте:

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

В общем, когда вы определяете ключи, вы должны определять их в определенных таблицах клавиш, а не просто надеяться, что local-set-key сделает то, что вы хотите.

Примечание: я предпочитаю использовать kbd для описания ключей, ваш "\C-c" будет работать нормально.

...