uli*_*tko 5 zsh alias command-line svn
我经常使用它的客户端在控制台中使用 subversion svn。常见的任务之一是查看svn log;然而,尽管有--limit选择,它的输出通常相当大。我想将输出通过管道传输到我的$PAGER(less确切地说是),就像git log那样。我想知道这是否可以通过zsh高级完成功能来实现;即每当我输入
svn log path1 path2 path3<Enter>
Run Code Online (Sandbox Code Playgroud)
管道结构将附加:
svn log path1 path2 path3 | $PAGER
Run Code Online (Sandbox Code Playgroud)
这对我来说类似于别名的工作方式,但来自“另一边”。
这在 zsh 中可能吗?
您可以使用 shell 函数执行此操作。把它放在你的~/.zshrc.
svn() {
if [ "$1" = "log" ]
then
command svn "$@" | less -FX
else
command svn "$@"
fi
}
Run Code Online (Sandbox Code Playgroud)
我已经用bashand测试过p4,但它应该zsh和 and 一起工作svn。该-FX选项less告诉它退出,如果第一屏幕上的整个文件配合,而不是切换到备用屏幕。less如果输出适合一个屏幕,这使得它看起来根本没有使用。