【发布时间】:2017-06-16 18:51:23
【问题描述】:
我正在编写一个应用程序,它通过自定义套接字从 Windows 控制台连接到 Linux 机器,我需要通过 TERM 环境变量告诉 Linux 机器我的控制台能够做什么。现在我设置了TERM=dumb,但它太有限了。特别是我需要 Linux 方面知道:
- 我正在使用标准输入从标准输入读取输入,因此没有传递 ESC、F1 和箭头(但 TAB 是)
- Windows 控制台具有自动换行功能
- 无法处理 ANSI 颜色序列
- 可以处理回车来绘制进度条
terminfo 数据库中是否有适用于此类 Windows 控制台的良好配置文件?
当我的应用最终识别 ANSI 颜色时,是否可以使用扩展配置文件?
更新:有人投票以too broad 结束此问题,因此我将问题编辑为非常具体地涉及应反映在terminfo 条目中的Windows 控制台功能。
【问题讨论】:
-
您是否寻找过通过控制台 API 实现 VT100 仿真的库,例如 PDCurses 如何实现curses?我不知道有一个,至少对于 C/C++ 来说不是。您还可以在 Windows 10 中支持控制台的 virtual terminal mode,并在 ANSICON 或 ConEmu 下运行时检测 VT100/ANSI 支持。
-
@eryksun 我实际上是为 Go 做的 - github.com/lxc/lxd/issues/1317 - 但现在我希望像
apt update这样的命令能够正确识别终端宽度并使用回车来绘制进度条。跨度> -
您的问题基本上是在问如何编写自定义终端描述(教程离题)。