gpt4 book ai didi

linux - VT100 ANSI 转义序列 : getting screen size, 条件 ANSI

转载 作者:IT王子 更新时间:2023-10-29 01:15:53 31 4
gpt4 key购买 nike

  1. 当我在终端上调整大小时,它保持全屏显示。我想,有某种方法可以找出终端的屏幕尺寸。我怎样才能在 VT100 中做到这一点?

  2. 使用 ,当我列出文件夹时,它以蓝色显示文件夹。 (或者让我们说不同的颜色)但是,如果您将输出保存到文本文件 ( 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行/列,这已经足够了),
  • 询问终端光标的实际位置。

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

关于linux - VT100 ANSI 转义序列 : getting screen size, 条件 ANSI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31619962/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com