禁用前缀键绑定

发布于 2024-11-17 05:51:45 字数 345 浏览 4 评论 0原文

在 emacs 的 shell 模式下,当前退出 shell 模式的键绑定 ('comint-interrupt-subjob) 是 "\Cc \Cc",我想更改就像在普通的 Linux shell 中一样,将其发送到 "\Cc" 。我尝试过

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

但没有成功。也许我需要禁用分配给 "\Cc" 的前缀。我怎样才能做到这一点?

In shell mode on emacs, the current key binding for quitting the shell mode ('comint-interrupt-subjob) is "\C-c \C-c", and I want to change it to "\C-c" as in ordinary linux shell. I tried

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

But it did not work. Probably I need to disable the prefix assigned to "\C-c". How can I do that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

鹤舞 2024-11-24 05:51:45

试试这个:

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

一般来说,当您定义按键时,您应该在特定的键盘映射中定义它们,而不是仅仅希望 local-set-key 执行您想要的操作。

注意:我更喜欢使用 kbd 来描述键,您的 "\Cc" 就可以正常工作。

Try this:

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

In general, when you define keys you should define them in particular keymaps, as opposed to just hoping the local-set-key does what you want.

Note: I prefer using kbd for describing keys, your "\C-c" would work just fine.

远山浅 2024-11-24 05:51:45
(define-key (current-local-map) "^C" 'comint-interrupt-subjob)

这将在没有本地设置密钥错误检查的情况下完成工作

(define-key (current-local-map) "^C" 'comint-interrupt-subjob)

This will do the work without the error checking of local-set-key

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文