【问题标题】:The arrow key outputs `^[[A`、`^[[B`、`^[[C`、`^[[D` strings in tmux + oh-my-zsh?方向键在tmux + oh-my-zsh中输出`^[[A`、`^[[B`、`^[[C`、`^[[D`字符串?
【发布时间】:2022-01-04 07:35:58
【问题描述】:

在某些情况下,当我输入箭头键时,它会在屏幕上输出字符串^[[A^[[B^[[C^[[D。我正在使用 tmux 和 oh-my-zsh 环境。

情况包括:

  • 启动服务器,tmux 中的窗格正在为持续运行的进程工作。当服务器进入断点时,我使用up箭头键查找以前的历史记录,但屏幕输出^[[A字符串。

为什么以及如何处理它?

【问题讨论】:

    标签: zsh tmux oh-my-zsh


    【解决方案1】:

    简而言之,这正是计算机所看到的从您的键盘发送的内容。

    您实际上需要一些实用程序,例如 bash 中的 readline 库来转换字符序列,例如^[[D 用于光标移动操作,例如。很多时候这已经提供,我们只是认为这是理所当然的。


    Esc (0x1B)、Space (0x20) 或 Del (0x7F),没有为 箭头键,这是在计算机历史上很晚才发明的。

    当你按下箭头键时,键盘实际发送的是一个序列 的组合。一种流行的组合是

    Arrow Key Control Sequence Introducer (CSI)
    ESC [ A
    ESC [ B
    ESC [ C
    ESC [ D

    ESC 键(ASCII 值 27 十进制,033 八进制或 0x1B 十六进制)相当于 Ctrl + [,显示为^[

    因此,您看到的是您的键盘实际发送的内容。你按下,计算机收到ESC [ D,正好是^[[D

    【讨论】:

    • 为什么 tmux 中的 zsh 输出 ^[[D 而普通的 zhs 和 bash(包括 tmux 中的 bash)得到右箭头左操作?
    猜你喜欢
    • 2013-10-29
    • 2015-06-20
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多