有没有办法在终端中维护两个窗口?

时间:2013-03-13 17:31:05

标签: ruby terminal command-line-interface tui

我正在构建一个小脚本,我需要在终端(TTY)中维护两个窗口。我想做像tmux的状态栏这样的事情,但是无法设法让底部栏进行更新同时我在屏幕的其余部分打印东西。我希望它看起来像:

|------------------------------------------|
| Whatever I 'puts' here                   |
|                                          |
|                                          |
|                                          |
|                                          |
|------------------------------------------|
| Status bar with whatever I 'puts' here   |
|------------------------------------------|

我已经尝试使用Ruby curses lib,但我认为这对我想做的事情来说太过分了,而且我确信这是一种更简单的方法。谢谢!

2 个答案:

答案 0 :(得分:1)

curses是正确的方法。您可以手动使用ANSI滚动区域和光标定位,但从长远来看,这将不那么便携,而且工作量也会增加。

如果您想了解有关ANSI终端如何工作的更多信息,这个wikipedia page是一个很好的起点,有很多链接。

我强烈推荐诅咒。在一个终端仿真器上处理直接ANSI可能是一个令人头痛的问题;支持多个操作系统和流行的终端模拟器的细微差别是不值得的(在我看来。)

答案 1 :(得分:-1)

+1 for curses(虽然您可能希望ncurses用于持续开发) - 它支持终端的窗口区域。

例如。 http://linux.die.net/man/3/newwin