我经常使用其客户端在控制台中使用 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
应该也能达到同样的效果。选项告诉它如果整个文件适合第一个屏幕则退出,而不是切换到备用屏幕。如果输出适合一个屏幕,这会使它看起来根本没有被使用。zsh
svn
-FX
less
less