linux – VT100 ANSI转义序列:获取屏幕大小,条件ANSI

linux – VT100 ANSI转义序列:获取屏幕大小,条件ANSI,第1张

概述>当我在终端上调整大小时,它会全屏显示. 我猜,有些东西可以找出终端的屏幕尺寸.我怎么能在VT100中做到这一点? >当我列出文件夹时,它显示蓝色文件夹. (或者说不同的颜色)但是,如果将输出保存到文本文件(ls> out.txt),则不会看到任何ANSI代码而是纯文本.但是,如果您尝试(vi> out.txt),您将看到ANSI代码.怎么知道的? 谢谢 自动调整到屏幕大小调整的程序(例如vi)响 >当我在终端上调整大小时,它会全屏显示.
我猜,有些东西可以找出终端的屏幕尺寸.我怎么能在VT100中做到这一点?
>当我列出文件夹时,它显示蓝色文件夹. (或者说不同的颜色)但是,如果将输出保存到文本文件(ls> out.txt),则不会看到任何ANSI代码而是纯文本.但是,如果您尝试(vi> out.txt),您将看到ANSI代码.怎么知道的?

谢谢

解决方法 自动调整到屏幕大小调整的程序(例如vi)响应SIGWINCH信号,并使用系统调用获取系统有关屏幕大小的信息.例如,参见 Get width/height of a terminal window in c++?.顺便说一下,虽然广泛实施,但似乎没有在POSIX signal.h中记录.

如果不考虑SIGWINCH,程序可以向终端询问其屏幕大小. resize程序通过发送终端控制序列来完成此 *** 作

>将光标移动到右下角(实际上,移动到行/列999/999,这已经足够了),和
>询问终端光标到底在哪里.

关于ANSI控制序列的ls和vi(以及其他程序)的行为将嵌入其输出中取决于程序的设计.他们可能会使用isatty函数检测其输出重定向到文件,并根据输出是终端还是文件来执行不同的 *** 作.

总结

以上是内存溢出为你收集整理的linux – VT100 ANSI转义序列:获取屏幕大小,条件ANSI全部内容,希望文章能够帮你解决linux – VT100 ANSI转义序列:获取屏幕大小,条件ANSI所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1026665.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存