如何使用 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
}

我已經用bashand進行了測試,但它應該與andp4一樣工作。如果整個檔案適合第一個螢幕,則告訴它退出的選項,而不是切換到備用螢幕。如果輸出適合一個螢幕,這使得它看起來根本沒有被使用。zshsvn-FXlessless

相關內容