在GUI模式下工作的某些emacs键盘绑定在终端模式because the terminal only knows how to send ASCII control codes中不起作用。当我将一个密钥绑定到非ASCII控制代码时,有没有办法让emacs抱怨所以我会不小心停止这样做?我偶尔只在终端上运行emacs,通常只是远程运行,通常只是因为某些东西被破坏了,这意味着我最终会在最糟糕的时候发现这种情况。
我也有远程操作的经验,特别是从一个操作系统到另一个操作系统(例如Solaris - > Linux),甚至修改键被重新映射(esc< - > ctrl交换,或者右alt工作但是离开alt不)。有没有办法检测何时发生这种情况并适当地交换我的键盘绑定?
基本上:每次我在终端远程使用emacs时都会觉得很糟糕,我得到的GUI体验不一致,如何更改我的emacs使用情况以防止这种情况发生。
答案 0 :(得分:1)
我不知道这样做的好方法:首先,终端只能发送ASCII控制代码是不正确的,因为它们可以通过转义序列编码几乎任何东西(例如xterm发送一个特殊的转义序列比如说,然后是Emacs认可的CM-up。因此,根据终端能够发送给Emacs的事件集(以及Emacs能够识别的事件)取决于终端。
如果你想要真正安全,你可以限制你自己的绑定,其中键序列被描述为一个字符串(不是矢量,而不是通过kbd
建立的东西),这基本上只意味着ASCII字符(包括控制序列)与Meta结合。