4

Я часто работаю с Subversion в консоли, используя его клиента svn . Одна из распространенных задач - просмотр svn log ; однако его вывод обычно довольно большой, несмотря на параметр --limit . Я хотел бы направить вывод в мой $PAGER (что less точно), как это делает git log . Интересно, можно ли это сделать с помощью расширенных функций завершения zsh ; т.е. всякий раз, когда я печатаю

svn log path1 path2 path3<Enter>

конструкция трубопровода будет добавлена:

svn log path1 path2 path3 | $PAGER

Это напоминает мне то, как работают псевдонимы, но с "другой стороны".

Это возможно в Zsh?

1 ответ1

6

Вы можете сделать это с помощью функции оболочки. Просто поместите это в ваш ~/.zshrc .

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

Я проверял это с bash и p4 , но он должен работать так же с zsh и svn . Опции -FX позволяют less указывать выход, если весь файл помещается на первом экране, а не переключаться на альтернативный экран. Это создает впечатление, что less не использовалось вообще, если вывод умещается на одном экране.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .