我试图围绕 VT102 序列以及诸如 ncurses 之类的库如何工作。
举个例子,当我打开 Emacs 时,它会填满终端窗口。当我点击C-x C-c时,程序退出并且我的终端窗口看起来与我启动 emacs 之前完全一样(即光标上方的行显示了emacs
我的 zsh 历史记录中的命令,而不是任何 emacs 呈现的命令)。
作为一种“hello world”,我编写了一个打开的小红宝石脚本/dev/tty
,然后为终端中的行数写入\x1B[48;597m\n
(空白行,带有背景色)。然后程序休眠 5 秒钟,让我高兴地盯着一个明亮的橙色屏幕片刻。然后它退出,在我的 zsh 提示符下留下我,上面有 53 行亮橙色。
两个问题:
- 用背景颜色写空行是用颜色填充终端窗口的正确方法吗?
- 如何通过向 /dev/tty 发送一些 VT102 序列来完全清除屏幕?
我可以发送\x1B[2J
,但这与执行命令时的作用相同clear
,实际上只是将所有内容移到终端窗口上,直到我的光标位于空白窗口的最顶部,而不是将光标留在任何地方如果我的程序没有在屏幕上写入大量空白行,那自然会是这样。
PS:不确定在这里使用什么标签,任何人实际上都可能订阅。