Emacs 从RET上解开C-m

Emacs 从RET上解开C-m,emacs,elisp,Emacs,Elisp,在我的emacs配置文件中,我创建了一个次要模式,这样我就可以重新绑定密钥,而不必为每个主要模式分别重新绑定它们 在此过程中,我已将C-m重新映射到kill ring save。但是,默认情况下,emacsC-m与RET相同。因此,当我的.emacs中包含以下内容时: (define-key my-minor-mode-map (kbd "C-m") 'kill-ring-save) 当我按下返回键时,kill ring save被执行 我应该如何着手修复配置文件,以免遇到这些问题 我也愿意

在我的emacs配置文件中,我创建了一个次要模式,这样我就可以重新绑定密钥,而不必为每个主要模式分别重新绑定它们

在此过程中,我已将
C-m
重新映射到
kill ring save
。但是,默认情况下,emacs
C-m
RET
相同。因此,当我的.emacs中包含以下内容时:

 (define-key my-minor-mode-map (kbd "C-m") 'kill-ring-save)
当我按下返回键时,
kill ring save
被执行

我应该如何着手修复配置文件,以免遇到这些问题

我也愿意采用不同的方法来创建在所有主要模式下都能工作的键绑定


编辑:我正在图形模式下运行

这在非图形模式emacs下不起作用。在终端中运行时,返回和C-m不可区分

如果您没有运行终端模式emacs,只需分别重新绑定
C-m

例如:

(cond (window-system  ; ensure not running in a terminal
       (local-set-key (kbd "<return>") 'newline)
       (local-set-key (kbd "C-m") 'kill-ring-save)))
(cond)(窗口系统;确保未在终端中运行
(本地设置键(kbd“”)'换行符)
(本地设置键(kbd“C-m”)“压井环保存”))

我正在gui模式下运行,但由于
中的“C-m”
与emacs中的
enter
相同,所以我所做的一切(包括您答案的变化)都不适用于我。请尝试
C-h k
以显示要返回的键绑定。它最初应该显示
RET(翻译自)运行…
。重新绑定后,它应该只说
运行…
。一旦
不再被转换为
RET
,您应该能够独立地绑定它们。请尝试使用“-q”启动Emacs,以确保没有任何配置干扰。然后将ataylor的代码粘贴到scratch缓冲区并对其求值。当我在Ubuntu上的GNU Emacs 23.2.1中这样做时,一切都按预期工作(除了
'新行
应该是
'新行
)。