15

我什至很难用谷歌搜索这个,因为我不知道正确的关键字。一些命令行应用程序(例如 vi 和 less)占据整个控制台屏幕并向用户呈现交互式界面。退出此类应用程序后,屏幕将返回到应用程序启动前的状态。我想编写一个以这种方式运行的程序,但同样,我什至不知道它叫什么,所以我找不到任何关于它是如何完成的文档。

所以,我的问题有三个:

  1. 我可以使用哪些关键字来查找相关文档?
  2. 如果您愿意,指向此类文档的链接会有所帮助。
  3. 最后,我可以用像 Ruby 甚至 bash 这样的脚本语言来完成这个任务吗?我对 C 没有问题,但我工作的环境更适合解释语言。
4

3 回答 3

7

正如一些评论中所说,您正在寻找 ncurses。Linux 文档项目有一个非常好的关于 C 的 ncurses 的 HOWTO,我用自己来开始它

https://tldp.org/HOWTO/NCURSES-Programming-HOWTO/

于 2013-01-08T18:12:47.073 回答
4

您描述的功能是备用屏幕缓冲区。我认为 [N]Curses 将默认启用此功能。Ruby、Python 和其他脚本语言当然有 curses 绑定。

于 2013-01-08T18:12:34.250 回答
2

您甚至可以使用 tput 程序在 bash 中访问 ncurses。整个 ncurses 库(就像之前的 curses)通过向终端发送转义序列来工作。xterm 程序模拟一个 vt100 终端(也是一个 Tektronic 终端),并且有各种字符组合可以移动光标、清除屏幕、绘制各种字符等。这些通常以转义字符开头,因此得名:escape顺序。您有时还会在人们的 PS1 shell 变量中看到这些转义序列,其中 \e 提供转义字符;常用于为提示着色或设置窗口标题。

tput 引用 terminfo 数据库来确定转义序列是什么来执行您要求它执行的功能。

请参阅手册页,键入:

man 5 terminfo

更多细节

于 2013-01-08T21:08:52.260 回答