在生成新输入时如何在终端窗口中向上滚动而又不会发回底部(Linux)


37

在Ubuntu中,我想在终端窗口中运行命令时向上滚动并生成新输出(实际上正在运行的命令是rspec)。我可以向上滚动,但是每次rspec生成新的控制台输出行时,它都会使我回到底部。有办法向上滚动吗?我在Linux Mint / Ubuntu 12.04 LTS上使用终止符

更新

我发现了一个可能的解决方法, 终结者主页

stty ixon

您可以打开“用于终端输出的XON / XOFF流控制。可以通过键入^ S暂停输出,并通过键入^ Q [...]恢复输出”

但是,这并不是我想要的,而不必暂停输出(也许想知道何时忘记再次打开它),我认为可能有一个简单的修饰键,如shft-alt和鼠标滚轮向上滚动。更好的解决方案?


我真的很喜欢LXTerminal(LXDE)。
马修·伦德伯格

您是通过Shift-PgUp滚动还是通过滚动条滚动?
ott-- 2013年

@MatthewLundberg通常使用鼠标滚轮,所以使用滚动条。但是,它也不能与shift-pgup一起使用:(我也可以在终结器中也包含lxterminal吗?
Yo Ludke

1
xfce4-terminal有一个名为Scroll on output的选项,您可以取消选中它并按照您的要求进行操作。
马丁·卡纳瓦尔

1
解决方法是,您可以将输出发送到文件,打开另一个终端,tail -f file.txt然后在生成时查看它。这样一来,您的第一个终端就可以自由滚动回去,但仍可以实时观看输出。我知道那不优雅。
terdon

Answers:


53

尽管我来晚了一些,但我还是将其发布在这里,以便所有来这里的人都能找到解决方案。对我来说,解决同一问题的方法是:

终止程序首选项->“配置文件”选项卡->滚动[子]选项卡->取消选中“滚动到输出”选项。

关于此选项的好处是,当您位于输出的最底部时,它仍将在输出上滚动,但是,一旦向上滚动,它将停止并且不会打扰您,即使输出内容仍在产生。

我希望这有帮助


:)是否可以创建快捷方式来切换此选项?
Yo Ludke

1
我已经搜索了一下,但是还没有找到任何在终结器中使用快捷方式切换它的方法。但是,由于该选项写在终结器配置文件中的“ $ HOME / .config / terminator / config”中,因此应该可以为命令直接分配一个全局快捷方式,以直接在配置文件中打开和关闭该选项。
Chikitulfo 2013年

4
尽管如此,对配置文件进行的更改不会影响已经在运行的终结者实例,而只会影响编辑后启动的新终结者实例。因此,如果要在正在运行的终结器上切换它,则必须手动进行操作,即afaik。无论如何,将选项切换为false时,只要您向下滚动到最后一行,它就会继续在输出上自动滚动。如果您手动向上滚动,它只会停止自动滚动。因此,我没有真正需要打开和关闭该选项。
Chikitulfo

1

tail -f log.txt | less将更新以获取新信息,然后您可以上下移动。您还可以使用less搜索功能等。使用管道方法,您还可以解析移动输出。

和相同的想法,但没有管道:less +F log.txt
(这假定您可以以这种方式使用内容。)

Unix的旧方法是在终端上按Ctrl-S停止,然后按Ctrl-Q重新开始输出滚动-基本上,这就是终止符所允许的stty ixon
添加滚动条后,这对我来说似乎很不错–按下Control-S,向上滚动至所需位置,然后按Control-Q向下滚动。是的,您偶尔会忘记取消暂停输出。

因为我异常懒惰,并且因为我喜欢输出重定向的灵活性,所以我在管道中使用tail -f(假设适合情况)。然后我可以停止它,向上箭头并添加类似grep的内容,它仍然可以运行: tail -f tac_plus.log | less | egrep 'peerip'

扔一些cattee在那里,你有一个真正的聚会。


我想将其用于rspec规范-问题是,使用尾部/较少的方法时,颜色会丢失(如果我直接运行命令,则输出是黑白的,而不是绿色/红色的)
Yo Ludke

@YoLudke我不熟悉rspec或它如何着色。有一些方法可以通过grep等传递颜色,但是在这里可能行不通。您是否正在执行将rspec指向持久性/循环/长期运行的过程,并从中获取输出的操作?
belacqua
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.