为啥是 Ctrl+.当我将它绑定到 Emacs 中的命令时不起作用?
Posted
技术标签:
【中文标题】为啥是 Ctrl+.当我将它绑定到 Emacs 中的命令时不起作用?【英文标题】:Why does Ctrl+. not work when I bind it to a command in Emacs?为什么是 Ctrl+.当我将它绑定到 Emacs 中的命令时不起作用? 【发布时间】:2012-06-22 01:44:53 【问题描述】:C-. 当我将它绑定到 Emacs 中的命令时,它在终端中不起作用。我在gnome-terminal
和真正的终端 tty1 上尝试了这个程序。我用-nw
标志启动Emacs,然后按C-h k(describe-key
的命令),然后按C-.。 Emacs 只接收.
,没有Ctrl
。我如何让它在 Emacs 中工作?
我正在用这个过程绑定键:
(define-key c-mode-base-map (kbd "C-.") 'semantic-ia-fast-jump)
或
(define-key c-mode-base-map [(control .)] 'semantic-ia-fast-jump)
【问题讨论】:
见***.com/q/7492518/1030675。 【参考方案1】:简而言之,大多数终端仿真器在它们可以生成的控制字符方面受到限制(原因很简单,它们所模拟的原始终端也受到限制)。
因此,当您按 C-.
时,您的终端很可能不会产生除 .
以外的任何东西(如果是这种情况,这基本上就是您的答案,除非有某种方法可以配置终端以不这样做)。
(当您认为 Emacs 在终端中运行时没有对某些输入进行操作时,您应该尝试验证 Emacs 是否确实接收了您认为的输入。)
如果您的终端正在生成.
以外的其他内容,请参阅以下问答以了解有关如何让 Emacs 识别序列的详细信息:
如果您可以运行 xterm,那么您可能很幸运,因为有一些特定于 xterm 的增强功能。看看以下内容:
Send "C-(" to Emacs in VT100/xterm terminal (Mac OS X's Terminal)? http://www.dur.ac.uk/p.j.heslin/Software/Emacs/Download/xterm-extras.el (我不确定第二个链接是否与此特定情况相关,但似乎值得包括在内)。其他一些相关问答:
How does one send S-RET to Emacs in a terminal? Why emacs confuse PageDown (<next>) key with M-[?【讨论】:
还有emacs.stackexchange.com/questions/1020/…以上是关于为啥是 Ctrl+.当我将它绑定到 Emacs 中的命令时不起作用?的主要内容,如果未能解决你的问题,请参考以下文章