如何回滚到Ubuntu xterm和PuTTY行历史缓冲区中的给定行,或者只显示一个屏幕文本?

时间:2016-01-19 12:23:35

标签: bash ubuntu putty xterm

我使用PuTTY和xterm bash控制台访问Ubuntu 12.04。我有一个构建脚本调用cmake并将STDERR传递给STDOUT。当出现编译时错误时,控制台有时会填充错误消息页面。我只对前几条消息感兴趣,所以必须多次向上滚动才能看到它。如何在cmake命令之前放置某种标记(例如ANSI转义码)并以编程方式将缓冲区滚动回到该点?

如果不可能,如果窗口大小可变,我怎样才能将输出截断为一个屏幕文本?我通常会使用LINES环境变量,但它无法访问,如set所示。 man pg谈论"系统提供的行数"和pg仍然有效,那么我怎样才能获得此值?

2 个答案:

答案 0 :(得分:1)

PuTTYxterm都没有办法标记回滚区域,并使终端向后滚动屏幕顶部的回滚区域。像许多功能一样,这将是“可行的”#34;但不属于正常使用范围。

问题的关键部分是

  

如何将输出截断为一屏文本

可以通过(暗示)某种类型的寻呼机来做到这一点。 pg太有限了,无法考虑。一些文本编辑可以通过一些工作来完成这项工作。 vimvile都可以从标准输入中读取文件;都有脚本语言。 (据我所知)两者都没有预制的脚本来执行此操作:

  • 阅读输入文件
  • 跳回第一条错误消息的开头
  • 将文件可见部分写入屏幕(问题的要点)。

如果没有换行,脚本会相当简单,因为H(屏幕顶部),L(屏幕底部)和复制文本范围内的操作从一行到另一行是原始vi的一部分。

换行会使事情复杂化。可以有一条比屏幕更长的线。当然可以有一条较短的线条包裹在可见屏幕的末端。可以编写宏来查找屏幕的结尾并保存该文本量。但是没有内置功能来简化它(例如参见 All the right moves )。它是可行的"。

答案 1 :(得分:0)

<ion-content ng-controller="ExampleCtrl"> <input ion-autocomplete type="text" readonly="readonly" class="ion-autocomplete" placeholder="Enter the country to search" items-method="getCountries(query)" items-clicked-method="clickedMethod(callback)" item-view-value-key="name" item-value-key="id_country" items-method-value-key="items" max-selected-items="1" autocomplete="off" ng-model="currentCountry" external-model="initialCountry" model-to-item-method="modelToItemMethod(modelValue)" /> </ion-content> 回答第二部分,但计算逻辑行,而不是屏幕行,因此不会处理环绕的行。