相关疑难解决方法(0)

退出后,某些工具(例如 nano ,less)如何设法在终端中不留下任何内容?

每当我在 shell 中使用类似寻呼机less或编辑器nano(我的 shell 是 GNU bash)时,我都会看到一种我无法完全解释的行为,这与我可以使用其他工具(如catls. 我想问一下这种行为是怎么产生的。

不容易解释的行为是,通常所有输出到 stdout/stderr 最终都被记录在终端模拟器后台缓冲区中,所以我可以向后滚动,而在使用lessor的情况下(对我来说不太正常)nano,输出由终端模拟器显示,但在退出程序时,内容“神奇地消失”。

我想举两个例子:

  • seq 1 200 (在后台缓冲区中生成 200 行)
  • seq 1 200 | less (让我翻页 200 行,但最终“清理”并在后台缓冲区中没有记录任何内容)

我的怀疑是某种转义代码在起作用,我很感激有人指出我对这种观察到的行为差异的解释。

由于一些评论和答案是措辞的,就好像我希望改变行为一样,这“很高兴知道”,但实际上所需的答案应该是对机制的描述,而不是改变它的方法。

pager terminal escape-characters

41
推荐指数
3
解决办法
2948
查看次数

如何保存/恢复终端输出

一些程序如 vim/nano/nload 可以使用整个终端来显示其内容,并且在退出时恢复之前的终端输出。他们如何实施这个恢复过程?

terminal

6
推荐指数
1
解决办法
1846
查看次数

标签 统计

terminal ×2

escape-characters ×1

pager ×1