在某些情况下,当我输入箭头键时,它会将字符串^[[A
、^[[B
、^[[C
、^[[D
输出到屏幕中。我正在使用tmux和我的zsh环境。
情况包括:
- 启动服务器,tmux中的窗格正在为一个持续运行的进程工作。当服务器输入断点时,我使用
up
箭头键查找以前的历史记录,但屏幕会输出^[[A
字符串
为什么以及如何使用它?
简而言之,这正是计算机从键盘发送的内容。
实际上,您需要一些实用程序,如bash中的readline
库,来将字符序列(例如^[[D
(转换为光标移动操作(例如←。很多时候,我们都会提供这种服务,而我们只是认为这是理所当然的。
不同于Esc(0x1B
(、空间el(0x7F
(,没有为箭头键,在计算机历史上发明得相当晚。
当你按下箭头键时,键盘实际发送的是一个序列组合。一种流行的组合是
箭头键 | 控制序列导入器(CSI( | ||||||
---|---|---|---|---|---|---|---|
↑ |
ESC↓ | ESC | → | ESC | ← | ESC | |