【问题标题】:Use semicolon in global-set-key for function in .emacs在 global-set-key 中使用分号作为 .emacs 中的函数
【发布时间】:2012-04-09 01:01:37
【问题描述】:

我正在尝试将 [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-hcC-; 时,我得到了输出:

; runs the command self-insert-command

这和我在emacs -nw运行 C-hc; 时完全一样@

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

【问题讨论】:

    标签: emacs elisp


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      使用(kbd "C-;") 完全正确。

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

      所以你的问题更可能是如何让你的终端发送 C-; 到 Emacs (或者如何让 Emacs 识别 的序列 已发送)。

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

      假设这是一个终端问题,这里有一些相关的问答可能会为您指明正确的方向,但这将取决于您使用的特定终端。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多