我經常使用其客戶端在控制台中使用 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
and進行了測試,但它應該與andp4
一樣工作。如果整個檔案適合第一個螢幕,則告訴它退出的選項,而不是切換到備用螢幕。如果輸出適合一個螢幕,這使得它看起來根本沒有被使用。zsh
svn
-FX
less
less