Я часто работаю с подверсией в консоли с помощью ее клиента svn
. Одна из общих задач просматривает svn log
; однако его вывод является обычно довольно серьезным несмотря на --limit
опция. Я хотел бы передать вывод по каналу к моему $PAGER
(который является less
быть точным), точно так же, как git log
делает. Интересно, может ли это быть достигнуто с zsh
усовершенствованные функции завершения; т.е. каждый раз, когда я ввожу
svn log path1 path2 path3<Enter>
конструкция передачи по каналу будет добавлена:
svn log path1 path2 path3 | $PAGER
Это напоминает мне путь работа псевдонимов, но с "другой стороны".
Действительно ли это возможно в zsh?
Можно сделать это с функцией оболочки. Просто вставьте это Ваш ~/.zshrc
.
svn() {
if [ "$1" = "log" ]
then
command svn "$@" | less -FX
else
command svn "$@"
fi
}
Я протестировал это с bash
и p4
, но это должно работать то же с zsh
и svn
. -FX
опции к less
скажите этому выходить, если весь файл соответствует на первом экране а не переключаться на альтернативный экран. Это заставляет его появиться это less
не использовался вообще, если вывод соответствует на одном экране.