Як передавати вихід певних команд на пейджер з zsh?


4

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

svn log path1 path2 path3<Enter>

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

svn log path1 path2 path3 | $PAGER

Це мені схоже на те, як працюють псевдоніми, але з "іншого боку".

Чи можливо це в zsh?

Відповіді:


6

Це можна зробити за допомогою функції оболонки. Просто покладіть це у своє ~/.zshrc.

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

Я перевірив це з bashі p4, але він повинен працювати так само zshі з svn. В -FXваріанти lessсказати йому , щоб кинути палити , якщо весь файл поміщається на першому екрані і не переключитися на альтернативний екран. Це робить вигляд, що lessвін взагалі не використовувався, якщо вихід підходить на один екран.


Мені подобається рішення.
ulidtko
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.