当管道命令输出到 less 时,我将使用鼠标滚动到输出的底部,我会发现 less 卡在向前滚动中,阻止我向后滚动输出。这与按下 的行为相同F。有没有办法从向前滚动中解锁更少?
重现:docker-compose up | less
然后按F。
是的。
我相信less
在进入这种模式时实际上会说“等待数据......(中断中止)”,至少当管道的左侧没有足够快地产生数据时。
“中断”的意思是“按下Ctrl+C”。这将向less
进程发送 INT(中断)信号。
Ctrl+C将 INT 信号发送到当前在 shell 前台的任何程序,就像kill -s INT pid
从另一个终端所做的一样(例如pid
,less
进程的进程 ID 可能在哪里)。有趣的事实。
为了避免将中断信号发送到管道左侧的数据生成命令,您可以使该命令完全忽略该信号:
( trap '' INT && some-command ) | less
Run Code Online (Sandbox Code Playgroud)