在.emacs中使用global-set-key中的分号表示函数

时间:2012-03-24 23:34:58

标签: emacs elisp

我正在尝试将[Ctrl] - [;]设置为我的.emacs中的键绑定

(global-set-key "\C-;" 'comment-or-uncomment-region)

然而,当我尝试时它不起作用(我没有收到任何错误消息,它只是没有效果)。如果我尝试普通字符(例如将其设置为“\ C-p”),它将起作用。

我也试过

(global-set-key (kbd "C-;") 'comment-or-uncomment-region)

但我不喜欢这个选项,因为对我来说,当我运行“emacs -nw”时它不起作用。有关如何做到这一点的任何想法?

编辑: 当我在emacs -nw中运行 C-h c C - ; 时,我得到输出:

; runs the command self-insert-command

与我在emacs -nw

中运行 C-h c ; 的情况完全相同

所以我认为phils是对的,这是一个终端问题,因为emacs从未真正看到 C - ; ,它只看到;

2 个答案:

答案 0 :(得分:4)

使用(kbd "C-;")绝对正确无误。

我怀疑当你在运行emacs -nw时键入 C - ; ,你的终端实际上​​并没有向Emacs发送任何内容。

所以你的问题更可能是如何让你的终端将 C - ; 发送给Emacs(或者如何让Emacs识别 < / em>已发送。

如果您运行emacs -Q -nw并输入 Ch c C - ; ,您会收到"C-; is undefined"条消息?

假设这是一个终端问题,这里有一些相关的Q&amp; As可能指向正确的方向,但它将取决于您正在使用的特定终端。

答案 1 :(得分:4)

确实C-;通常不是您的终端能够发送到底层应用程序(如Emacs)的东西(因此它可以在GUI下工作,但不能在终端中工作)。但我想知道:为什么你需要这样的约束,因为M-;已经绑定到comment-dwim,它在选择区域时对区域进行注释/取消注释,因此它提供了{{的超集1}}。