linux– 管道到更少-S而不清除命令行历史记录中的输出

linux– 管道到更少-S而不清除命令行历史记录中的输出,第1张

概述所以我想通过将命令的输出传递给|来在终端中为我的自定义bash命令提供水平滚动少-S但是,如果我这样做,一旦退出较少,命令的输出将不会保留在命令行历史记录中当你退出时,有没有办法配置less以保持历史记录中的命令输出?例如.如果你看看git diff,你可以执行水平滚动然后退出但是输出仍然保留在历史记录中,然后你可以输入新的命令......我基本上想要为我的

所以我想通过将命令的输出传递给|来在终端中为我的自定义bash命令提供水平滚动少-S

但是,如果我这样做,一旦退出较少,命令的输出将不会保留在命令行历史记录中

当你退出时,有没有办法配置less以保持历史记录中的命令输出?

例如.如果你看看git diff,你可以执行水平滚动然后退出但是输出仍然保留在历史记录中,然后你可以输入新的命令……我基本上想要为我的自定义bash命令模拟它.同样在git diff中,它在现场执行水平滚动(即不使用新的屏幕),命令行历史记录仍然可见,而少用它会在自己的屏幕上执行,你将无法看到命令线路历史,而“减少”.是否有可能在较少的情况下模拟这种git diff-like机制?

如果有任何其他解决方案,没有使用更少的随意抛出它

更新的问题

所以假设我这样做:

cat loremipsum | less -FRSXLorem ipsum dolor sit amet,consectetur adipiscing elit. Nullam sed 

然后我向右按两次,使其向右滚动两次.然后我按q退出更少.屏幕上保留的输出将是:

cat loremipsum | less -FRSX Lorem ipsum dolor sit amet,consectetur adipiscing elit. Nullam sed  ESCOCdictum diam. Nullam quis urna ullamcorper,accumsan quam vitae,aliquet  ESCODnisl. Maecenas vitae lorem orci. Ut vel est erat. Cras quis sagittis sAPIen,ac volutpat metus.  username@server:~/httpdocs$

但是在git diff中你做同样的事情,然后按q,只有最后一部分(即我滚动到右边的屏幕的最后一部分)

 git diffnisl. Maecenas vitae lorem orci. Ut vel est erat. Cras quis sagittis sAPIen,ac volutpat metus.  username@server:~/httpdocs$

将保留在屏幕上

我如何才能实现这一点

最佳答案我现在无法访问任何可以运行git diff的内容,但如果我正确地阅读了您的问题和评论,我认为-X选项可以帮助减少.例如

ls -la | less -SX

这可以防止在显示输出之前保存和清除屏幕,以及在退出时清除和恢复屏幕.

更新

我拉了一个git工作区,想出了git diff实际上在做什么:

$pstree -p | grep git        |-xterm(6021)---bash(6023)---sh(6104)---git(17708)---less(17709)$cat /proc/17709/cmdline | xargs -0 echoless$cat /proc/17709/environ | xargs -0 --replace echo {} | grep LESSLESSOPEN=|/usr/bin/lesspipe.sh %sLESS=FRSX$

所以git diff没有将选项传递给less.相反,它将LESS环境变量设置为FRSX.这与将-FRSX选项传递给less相同.那么,你得到了-FRSX你需要的东西:

ls -la | less -FRSX
总结

以上是内存溢出为你收集整理的linux – 管道到更少-S而不清除命令行历史记录中的输出全部内容,希望文章能够帮你解决linux – 管道到更少-S而不清除命令行历史记录中的输出所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/1046845.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-24
下一篇2022-05-24

发表评论

登录后才能评论

评论列表(0条)

    保存