TGViewer
этогик // DevOps, Infrastructure, Productivity этогик // DevOps, Infrastructure, Productivity @etogeek · 4.38K subscribers
Post #348 3.94K
Наткнулся на статью в которой автор говорит, что у него 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.

А чем вы пользуетесь для работы с терминалом? Делитесь вашим стеком, темами и скриншотами в комментариях!
  • 👍 23
  • ❤ 7
  • 🔥 5
  • 👏 1
More from @etogeek
  1. Sep 4, 2026Баланс в EdTech Подписан на канал Mischa van den Burg и там недавно вышло видео, где автор…
  2. Aug 31, 2026Чтобы немного подвести итог серии постов про бекапы (раз и два), расскажу как я ими управл…
  3. Aug 25, 2026Мониторинг бекапов В прошлый раз я говорил про PITR-бекапы для PostgreSQL, теперь хочу нем…
  4. Aug 21, 2026Про бекапы. Хочу немного поделиться своим опытом в нескольких постах. Это больше информаци…
  5. Aug 13, 2026Когда я преподавал в Практикуме (был такой период, да. еще и видео снимал), студенты часто…
  6. Jun 25, 2026Некоторое время назад столкнулся с тем, что какой-то сервис отправил мне огромное количест…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →