我创建了一个自定义的按键绑定宏,如下所示:
```(global-set-key (kbd "C-C C-c") "\C-a\C- \C-n\M-w\C-y")```
问题在于,在 `python-mode` 中, `C-c C-c` 已被定义为 `python-send-buffer`。因此,我的宏适用于除 python-mode 之外的所有模式。我假设 `python-mode` 是在我的初始化文件之后评估的,因此它覆盖了该按键绑定。
我尝试使用 `(eval-after-load "python-mode")` 和 `global-unset-key` 取消 `C-c C-c`,但这并不起作用。在 python 中, `C-c C-c` 总是映射到 `python-send-buffer`。
如何完全禁用 Python 的 `C-c C-c`,并使用我的宏替代呢?
我正在使用 Emacs 24.2.1。
```(global-set-key (kbd "C-C C-c") "\C-a\C- \C-n\M-w\C-y")```
问题在于,在 `python-mode` 中, `C-c C-c` 已被定义为 `python-send-buffer`。因此,我的宏适用于除 python-mode 之外的所有模式。我假设 `python-mode` 是在我的初始化文件之后评估的,因此它覆盖了该按键绑定。
我尝试使用 `(eval-after-load "python-mode")` 和 `global-unset-key` 取消 `C-c C-c`,但这并不起作用。在 python 中, `C-c C-c` 总是映射到 `python-send-buffer`。
如何完全禁用 Python 的 `C-c C-c`,并使用我的宏替代呢?
我正在使用 Emacs 24.2.1。
C-c
后跟控制键(例如C-c
)被“保留用于主模式”,这意味着定义主模式的 Lisp 代码有权使用它(并且他们经常使用C-c C-c
,如 ScottFrazer 所说)。当然,用户仍然有权绑定这样的键,但要知道主模式也会自由地这样做,因此您可能需要找到替代键来在这些模式下使用(请参见此处的答案)。请参阅 Elisp 手册,节点“键绑定约定”。 - DrewC-x
。你还有很多可用的键。请参阅手册中的“键绑定约定”,了解哪些键保留给用户。(您也可以绑定任何其他键,但它们可能会覆盖模式键等)。您还可以定义自己的前缀键:例如,您可以将<f8>
作为一些或所有自己的键的前缀。 - Drew