zsh를 사용하여 특정 명령의 출력을 호출기로 파이프하는 방법은 무엇입니까?

zsh를 사용하여 특정 명령의 출력을 호출기로 파이프하는 방법은 무엇입니까?

저는 클라이언트를 사용하여 콘솔에서 Subversion 작업을 자주 하고 있습니다 svn. 일반적인 작업 중 하나는 보기입니다 svn log. 그러나 옵션에도 불구하고 그 출력은 일반적으로 꽤 방대합니다 --limit. 나는 출력을 my $PAGER(정확히 말하면 less) 로 파이프하고 싶습니다 git log. zsh고급 완성 기능을 사용하면 이것이 달성될 수 있는지 궁금합니다 . 즉, 내가 입력할 때마다

svn log path1 path2 path3<Enter>

배관 구조가 추가됩니다:

svn log path1 path2 path3 | $PAGER

이것은 별칭이 작동하는 방식과 유사하지만 "다른 쪽"에서 발생합니다.

zsh에서 이것이 가능합니까?

답변1

쉘 함수를 사용하여 이를 수행할 수 있습니다. 이것을 ~/.zshrc.

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

나는 그것을 bashand 로 테스트했지만 and p4에서도 동일하게 작동해야 합니다 . 전체 파일이 첫 번째 화면에 맞으면 종료하고 대체 화면으로 전환하지 않도록 지시하는 옵션입니다 . 이는 출력이 한 화면에 맞으면 전혀 사용되지 않은 것처럼 보입니다 .zshsvn-FXlessless

관련 정보