3.2Kпросмотров
76.4%от подписчиков
13 января 2026 г.
📷 ФотоScore: 3.6K
Наткнулся на статью в которой автор говорит, что у него Oh My Zsh тормозит запуск терминала: типа 380мс (на голый OMZ) это очень медленно, а у него еще какой-то воркфлоу, который постоянно открывает новые окна терминала. Я полистал, и вспомнил, что у меня-то терминал тоже долго открывается. Оказалось до 1.47 сек. Неприятненько. Решил разобраться что к чему. Для начала небольшая экскурсия в часто-рекомендуемый стек работы с терминалом: - эмулятор терминала: например iTerm2 или ghostty. Отвечает за отрисовку терминала, GUI по сути.
- zsh - командный интерпретатор. По дефолту в Макоси стоит именно zsh. Аналоги: bash, fish, sh
- oh-my-zsh - фреймворк для zsh для более удобной установки плагинов, тем и т.д.
- prompt - тема для строки приглашения, например: powerlevel10k или starship У zsh есть свой профайлер, чтобы его включить добавляем в ~/.zshrc:
# в начало файла
zmodload zsh/zprof
.....
# в конец файла
zprof Посмотрим, что там у меня больше всего тормозит:
nvm_auto 398.78ms 50.55%
__yc_bash_source 163.05ms 20.67%
nvm 195.29ms 24.75%
compinit 226.47ms 28.71% nvm, тулза для яндекс облака, и какой-то compinit. В принципе, вещи которыми я пользуюсь довольно редко. Скрипты nvm и yc в .zshrc поставились автоматически при установке соответствующих инструментов. Там всякие автокомплиты, обновления, сканы файлов… Для nvm и yc сделал “ленивую” загрузку, чтобы эти скрипты загружались в сессию только при запуске команды. (см. в примере ниже) compinit - это оказался автокомплит в zsh. Для него выключаю аудит файлов, проверку кэша:
autoload -Uz compinit
compinit -C -u Из той статьи я решил подчерпнуть минималистичность конфигурации и призыв ставить только то, что нужно. Поэтому удаляю все следы oh-my-zsh из .zshrc. Понадобится - поставлю. Плагин zsh-autosuggestions ставлю через brew. А любимую тему для prompt (powerlevel10k) ставлю без oh-my-zsh. Вот такое мне уже нравится:
/usr/bin/time zsh -i -c exit
0.17 real
Теперь хочется добавить в промпт информацию об активной версии Python и venv. В репозитории обновил свой актуальный .zshrc. ✨ А чем вы пользуетесь для работы с терминалом? Делитесь вашим стеком, темами и скриншотами в комментариях!