【问题标题】:use zsh's built in pager instead of less使用 zsh 的内置寻呼机而不是 less
【发布时间】:2023-12-29 18:06:01
【问题描述】:

假设我有一个巨大的命令

echo "start string `complexcommand -with -many args | cut -d ' ' -moreargs | sed 's/you/get/g' | grep -v "the idea" | xargs echo` ending string" | program | less -S 

它产生数百行数千个字符的输出。

less 可以很好地处理垂直滚动,因为它大部分时间都在使用它,但是根据top,左右滚动非常耗费 CPU,而且我不知道有任何“page-left”或“page-right”风格的命令去得更快。

所以我希望像 zsh 的内置寻呼机这样的东西可以更快地处理这个任务,但是我在弄清楚使用它的命令时遇到了麻烦。它需要一个文件输入。有没有办法让 oneliner 使用寻呼机,而不必先将其转储到文件中?

或者如果有人对更好的编辑器有建议。接下来我可能会尝试使用 vim。

【问题讨论】:

    标签: shell unix zsh less-unix


    【解决方案1】:

    如果要调用 zsh 的寻呼机,请使用some-complex-pipeline | zsh -c '< /dev/fd/0'。 /dev/fd/0 文件是代表当前进程的标准输入流的设备。

    【讨论】:

    • 哦,好吧。我没有尝试过这种方法。谢谢。当我开始在我的大量输入上测试这个时会接受
    • 我希望我能写下那个“巨大的输入”是什么。哦,过去的我是如此神秘 -- edit: 哦!它正在打印 SQL 表转储 :D 我是全部,当地狱没有让我失望的时候? - 哦,对了,当我试图喂它 that 以便我可以过滤一些正则表达式时 - 现在我猜如果 less 或 zsh(或 bash!)无法处理它,当然Vim 7.4.BETA14 可以。