如何使用 zsh 将某些命令的输出传送到寻呼机?

如何使用 zsh 将某些命令的输出传送到寻呼机?

我经常使用其客户端在控制台中使用 subversion svn。常见任务之一是查看svn log;然而,尽管有--limit选项,它的输出通常非常庞大。我想将输出通过管道传输到我的$PAGER(确切地说less),就像这样git log做一样。我想知道这是否可以通过高级完成功能实现zsh;即每当我输入

svn log path1 path2 path3<Enter>

附加管道施工:

svn log path1 path2 path3 | $PAGER

在我看来,这类似于别名的工作方式,但是是从“另一面”而言的。

这在 zsh 中可能吗?

答案1

您可以使用 shell 函数执行此操作。只需将其放入您的~/.zshrc.

svn() {
    if [ "$1" = "log" ]
    then
        command svn "$@" | less -FX
    else
        command svn "$@"
    fi
}

我已经用 和 测试过了bash,但用和p4应该也能达到同样的效果。选项告诉它如果整个文件适合第一个屏幕则退出,而不是切换到备用屏幕。如果输出适合一个屏幕,这会使它看起来根本没有被使用。zshsvn-FXlessless

相关内容