Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – VT100 ANSI转义序列:获取屏幕大小,条件ANSI大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

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

谢谢@H_696_23@

解决方法

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

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

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

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

大佬总结

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

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。