Красота в консоли

Если верить статистике MacOS, то топовые приложения которые я использую для работы это Chrome, VS Code, iTerm и VK Teams. При этом в консоли я провожу от часа до трех ежедневно. На самом деле это время больше, потому что часть того что трекается как VS Code тоже является временем работы в консоли, только встроенной в VS Code. Поэтому консоль хочется сделать удобнее и красивее. Особенно этой поздней осенью. Этими красивостями и удобностями и хочется поделиться. И не просто поделится, а что бы с красивыми картинками, некоторые из которых были бы не совсем статичны. Ну или совсем не статичны. Это как кому нравится.

Zsh / Oh My Zsh / powerlevel10k

Zsh / Oh My Zsh / powerlevel10k

Небольшой пример работы этой связки с пояснениями и картинкой

  1. Набираем команду cd и плагин https://github.com/zsh-users/zsh-autosuggestions сразу предлагает нам серым подсказку из истории командной строки (без всяких нажатий Ctrl + r, хочется это особо отметить), жмем стрелочку вправо и enter и переходим в каталог.

  2. Тема понимает что мы в гит бранче выписанной с gitlab и меняет значок на githlab и так же показывает бранчу в которой мы сейчас находимся

  3. Экспортируем конфиг доступа к кластеру k8s и тема начинает справа показывать имя этого кластера. Показало бы еще и namespace если мы были не в default.

  4. Пытаемся посмотреть несуществующий каталог и зеленая галочка справа меняется на крестик на красном поле с цифрой кода выхода программы

  5. Эмулируем долгое выполнение команды через sleep 10 c включенной настройкой command_execution_time в powerlevel10k. После выполнения команды появляется  еще одно поле, с песочными часиками, которое показывает время выполнения этой самой команды

16f7daac5535bef49eb95029e9c4b488.gif

Вообще в ~/.p10k.zsh можно очень много  всего включить, советую почитать на предмет интересующих опций прямо в нем. Например там можно:

  • показывать текущее окружение python venv, anaconda, node, ruby, etc

  • показывать текущий кластер и контекст k8s

  • показывать текущий профиль AWS / Google Cloud / Azure

  • показывать ip, место на диске, загрузку cpu, статус батарейки, скорость wifi

и это далеко не полный список

Ripgrep

https://github.com/BurntSushi/ripgrep

  • Очень очень быстрая замена grep

  • Игнорит то что указано в .gitignore/.ignore/.rcignore 

  • Может искать только в файлах с нужными расширениями, например yaml — rg 'something' -tyaml

  • полная поддержка Unicode включая emoji. Да, можно искать

    © Habrahabr.ru