我正在尝试开发一个聊天应用程序,其界面是基于终端的。为此,我一直在使用screen
和tmux
命令。
然而,我发现它们有一个相似之处:我的命令不在全屏模式下运行,就像我在框架/面板/窗格/窗口中向上滚动足够多一样,我仍然可以可视化历史记录和外壳。
例如,如何使我的程序像 vi 一样以全屏模式运行?
谢谢!
答案1
所以你想创建一个途易(基于文本的用户界面)应用程序?作为TUI 维基百科页面说:
在类 Unix 操作系统中,TUI 通常是使用终端控制库构建的咒骂, 或者恩诅咒,一个大部分兼容的库。
一种简单的互动方式恩诅咒使用tput
命令行工具。这样我们就可以解决您有关“全屏模式”的具体问题。这通常是通过激活辅助屏幕来完成的(任何合适的终端模拟器都应该提供该屏幕):
tput smcup
当前屏幕将被隐藏(例如,您将无法向上滚动并查看以前的输出),并且在新的“新鲜”屏幕中您将呈现您的应用程序。退出后返回主屏幕:
tput rmcup
……一切都会恢复如初。
tput
这是其他功能的示例
tput cup 23 4 # move the cursor to row 23, column 4 of your terminal
tput ed # clear to end of screen
tput setaf 2 # set foreground color to bright green
tput cubl # move cursor left one space
tput rev # turn on reverse video mode
tput sc # save the cursor position
tput rc # restore the cursor position
参见man tput
和man 5 terminfo
。对于后者,您需要向下滚动到预定义功能特别是部分。
网上有很多很好的资源可以了解更多信息,例如http://linuxcommand.org/lc3_adv_tput.php
tmux
(注意,以上内容与您是否使用等无关。)