保持终端输入线在终端的顶部?

Ian*_*Ian 6 linux terminal input output

很难准确地解释我正在寻找什么,所以我制作了一些示例输出,说明我希望我的终端如何工作。(行首的每个数字代表该行的返回值,> 代表输入行。

>   me@computer:~$ 
5.  me@computer:~$ cat somefile                 < command
    start of file                               < output
                                                < output
    this                                        < output
    is                                          < output
    the                                         < output
    content                                     < output
    of                                          < output
    the                                         < output
    file                                        < output
                                                < output
    end of file                                 < output
4.  me@computer:~$ 
3.  me@computer:~$ 
2.  me@computer:~$ 
1.  me@computer:~$ echo this is the first line  < command
    this is the first line                      < output
Run Code Online (Sandbox Code Playgroud)

在此示例中,您键入要执行的命令的输入行将始终位于顶部。它会将每个命令和它的输出向下推送为“事件”,可以这么说。所以如果你 cat 一个文件,它会以相反的顺序输出所有内容,所以每个命令的输出外观没有改变,只是它的位置。

Mic*_*fin 2

这是一个有趣的想法,但我认为目前还没有任何东西可以做到这一点。有许多相互关联的部分必须协同工作才能做到这一点。

没有太多尝试改变终端的工作方式,因为它们有数十年的增量历史,并且始终以相同的基本方式工作,彻底改变这一点将破坏现有应用程序的分配。

也就是说,编写一个简单的 ncurses 应用程序来执行您想要的操作并不是很难,但它只能在基本命令上运行,任何需要成熟终端的操作都会失败(例如 vim、nano、screen、top 等)。支持他们将是一项大量的工作。

然而,最近在创建现代终端应用程序方面进行了一些尝试,其中一些允许您直接显示图像/视频;例如术语。我见过的最激进的是黑屏,您可能会对它感兴趣。它并不完全是您正在寻找的东西,并且仍处于相当早期的开发阶段(您可能会遇到问题),但可能会提供一些相同的功能您希望它的工作方式的优点(突出显示命令,使您可以轻松地看到命令的输出启动/停止等)。