切换工作空间后终端提示异常(如;7A)

切换工作空间后终端提示异常(如;7A)

我正在使用 Arch Linux 和 Zsh。我通常会打开多个工作区并来回切换(使用 Ctrl+Alt+向上/向下)。但是,我注意到有时当我返回终端时,它会显示以下提示:

在此输入图像描述

并不是每次切换时都会发生这种情况;但这种情况很常见。这很烦人。

我想这些是向上/向下键。有什么想法如何修复它吗?

提前致谢!

答案1

你是对的,这是按Ctrl+ Meta+造成的Up/Down。终端发送转义序列来表示功能键和修饰符组合;看键盘输入和文本输出如何工作?以获得概述和有没有可以处理所有组合键的 Linux 终端?了解与此特定案例相关的更多详细信息。

Zsh 无法知道该键的某些按下是否合法。该错误要么存在于您的窗口管理器(或处理Ctrl+ Meta+键绑定的桌面环境部分Up/Down)中,要么存在于您的终端模拟器中。可能不在终端模拟器中,因为它根本不应该看到这些击键:它们应该由将它们设置为键盘快捷键的程序捕获。

您能做的最好的事情就是 zsh 设置一个解决方法:为这些键序列添加一个不执行任何操作的键绑定。这仅对 zsh 有效,对终端中运行的其他应用程序无效。完整的字符序列为␛[1;7Afor Ctrl+ Meta+Up␛[1;7Bfor Ctrl+ Meta+ Down,其中 ␛ 是转义字符(字节值 27)。您可以通过按Ctrl+V然后在 zsh 中击键(转义字符显示^[在终端上)来看到这一点。默认情况下,zsh 读取␛[1,发现此转义序列未绑定并停止在此处读取,然后将以下字符视为普通插入(除了根据具体情况外,无法知道键序列何时结束)。

bindkey -s '\e[1;7A' ''
bindkey -s '\e[1;7B' ''

相关内容