Подсветка потока ошибок в zsh
Часто сообщения об ошибках теряются в общем потоке вывода данных, и их хотелось бы как нибуть выделять. Тут опять пригодятся глобальные алиасы zsh.
Добавим в ~/.zshrc
autoload colors # подключим цвета colors alias -g HE='2>>( sed -ue "s/.*/$fg_bold[red]&$reset_color/" 1>&2 )' # Highlight Errors
После перезагрузки zsh у нас появится глобальный алиас HE который можно использовать на ряду с другими фильтрами. Алиас запускает в фоне sed который подсвечивает строки, и перенаправляет ему в на выход стандартный поток ошибок
Пример работы: мы хотим найти в /etc все файлы в названии которых есть zsh и при этом подсветить в каких каталогах поиск не удался.

Пояснения: строка
$ find /etc HE GI zshРазвернется в
find /etc 2>>( sed -ue "s/.*/$fg_bold[red]&$reset_color/" 1>&2 ) | grep -i zsh
Глобальный алиас GI описан здесь.
Подсведка результатов grep описана здесь
BUGS: алиас запускает асинхронный процесс подсведки цветов, что обозначает что подсвеченые ошибки могут выводится не синхронно с потоком стандартного вывода.
PS
Для пользователей bash существует полезный скрипт по подсвечиванию потока ошибок для программы переденной как параметр.
| Вложение | Размер |
|---|---|
| zsh-highlight-error-and-grep-match.png | 6.13 кб |
- 1485 просмотров
Страница для печати


Здравствуйте, хочу пересесть на zsh. Не могли бы вы отправить мне настройки zshrc, если у вас так, как на этом рисунке
С zsh идут набор стандартных тем. что бы их посмотреть нужно запустить:
После этого доступны такие команды
Это мои настройки промпта. Сохранено в ~/.zsh_prompt, а в .zshrc прописано
Так же на сайте есть советы в тему:
А что, собственно, делает опция -u ?
На FreeBSD в sed её не оказалось.
обозначает "ubuffered". если нет этой опции, то sed буферезирует какое то кол-во данных перед тем как их отображать и тогда подствеченные ошибки будут выводится блоками по мере обработки
Отправить комментарий