gpt4 book ai didi

emacs - 在 emacs 中无法在终端模式下工作的 block 绑定(bind)?

转载 作者:行者123 更新时间:2023-12-02 14:39:41 25 4
gpt4 key购买 nike

一些在 GUI 模式下工作的 emacs 键盘绑定(bind)在终端模式下不起作用 because the terminal only knows how to send ASCII control codes .当我将键绑定(bind)到非 ASCII 控制代码时,有没有办法让 emacs 提示,所以我会意外停止这样做?我只是偶尔在终端上运行 emacs,而且通常只是远程运行,而且通常只是因为某些东西坏了,这意味着我最终会在最糟糕的时候发现这种糟糕的情况。

我也有过远程处理的经验,尤其是从一个操作系统到另一个操作系统(例如 Solaris -> Linux),甚至修改键也会被重新映射(esc <-> ctrl 被交换,或者右 alt 有效但左 alt 无效)。有什么方法可以检测到这种情况何时发生并适本地交换我的键盘绑定(bind)?

基本上:每次我在终端远程使用 emacs 时,我都会得到与 GUI 不一致的体验,这很糟糕,我该如何更改我的 emacs 使用以防止这种情况发生。

最佳答案

我不知道这样做的好方法:首先,终端只能发送 ASCII 控制代码是不正确的,因为它们可以通过转义序列对几乎任何东西进行编码(例如,xterm 发送一个特殊的转义序列,例如, C-M-up,然后 Emacs 可以识别)。因此,取决于终端能够发送到 Emacs 的事件集(以及 Emacs 能够识别的事件)取决于终端。

如果您想真正安全,您可以将自己限制在将键序列描述为字符串(不是向量,也不是通过 kbd 构建的东西)的绑定(bind),这基本上意味着只有 ASCII 字符(包括控制序列)组合与元。

关于emacs - 在 emacs 中无法在终端模式下工作的 block 绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12925852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com