我猜,有些东西可以找出终端的屏幕尺寸.我怎么能在VT100中做到这一点?
>当我列出文件夹时,它显示蓝色文件夹. (或者说不同的颜色)但是,如果将输出保存到文本文件(ls> out.txt),则不会看到任何ANSI代码而是纯文本.但是,如果您尝试(vi> out.txt),您将看到ANSI代码.怎么知道的?
谢谢
解决方法 自动调整到屏幕大小调整的程序(例如vi)响应SIGWINCH信号,并使用系统调用获取系统有关屏幕大小的信息.例如,参见 Get width/height of a terminal window in c++?.顺便说一下,虽然广泛实施,但似乎没有在POSIXsignal.h
中记录. 如果不考虑SIGWINCH,程序可以向终端询问其屏幕大小. resize
程序通过发送终端控制序列来完成此 *** 作
>将光标移动到右下角(实际上,移动到行/列999/999,这已经足够了),和
>询问终端光标到底在哪里.
关于ANSI控制序列的ls和vi(以及其他程序)的行为将嵌入其输出中取决于程序的设计.他们可能会使用isatty
函数检测其输出重定向到文件,并根据输出是终端还是文件来执行不同的 *** 作.
以上是内存溢出为你收集整理的linux – VT100 ANSI转义序列:获取屏幕大小,条件ANSI全部内容,希望文章能够帮你解决linux – VT100 ANSI转义序列:获取屏幕大小,条件ANSI所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)