更少的命令卡在向前滚动中

ret*_*ker 6 less

当管道命令输出到 less 时,我将使用鼠标滚动到输出的底部,我会发现 less 卡在向前滚动中,阻止我向后滚动输出。这与按下 的行为相同F。有没有办法从向前滚动中解锁更少?

重现:docker-compose up | less然后按F

Kus*_*nda 8

是的。

我相信less在进入这种模式时实际上会说“等待数据......(中断中止)”,至少当管道的左侧没有足够快地产生数据时。

“中断”的意思是“按下Ctrl+C”。这将向less进程发送 INT(中断)信号。

Ctrl+C将 INT 信号发送到当前在 shell 前台的任何程序,就像kill -s INT pid从另一个终端所做的一样(例如pidless进程的进程 ID 可能在哪里)。有趣的事实。

为了避免将中断信号发送到管道左侧的数据生成命令,您可以使该命令完全忽略该信号:

( trap '' INT && some-command ) | less
Run Code Online (Sandbox Code Playgroud)

  • @retrohacker `( trap '' INT && somecommand ) | less`,即忽略运行命令的子 shell 中的 INT 信号。 (6认同)
  • 我的英雄!已经困扰我好几个星期了。看起来 less 正在将中断转发给子进程,有没有办法防止这种情况?我希望能够向后滚动,但为了让我的子进程继续运行。 (2认同)