iTerm2 — это популярный эмулятор терминала для macOS. В этой статье я хочу поделится своим опытом его использования. Я не фанат работы с OS через консоль и если есть возможность сделать что-то через удобный GUI -- я выберу этот вариант, но есть ряд задач которые я делаю в терминале, например:

  • Запуск скриптов для рабочих проектов

  • Использование пакетного менеджера Homebrew

  • Работа со CLI-утилитами

В первую очередь терминал для меня — это конечно запуск рабочих скриптов. Не самая крупная задача и долгое время мне хватало стандартного терминала macOS, но со временем я стал обращать внимание, что я держу открытыми несколько окон терминала в каждом из которых запускаю всего пару команд и было бы очень удобно переключаться не между окнами терминала, а между табами в одном окне. Оказалось, что эту задачу прекрасно решает iTerm2. Он не только позволяет открывать несколько сессий терминала в разных вкладках, но и поддерживает кучу расширений и разные темы оформления. Я потратил вечерок на настройку, которая сделала мою работу в терминале еще чуть удобнее и визуально приятнее, и хочу ей поделится.

Установка iTerm2

Процесс простой. Установить iTerm2 можно двумя способами:

  1. Скачать образ с официального сайта

  2. Использовать Homebrew

Первый вариант удобен тем, что не нужно ничего дополнительно устанавливать кроме самого iTerm2. Скачал, установил, пользуешься. Из коробки все уже настроено неплохо. Но так как я решил заморочиться с дополнительной настройкой, и мне для этого потребуются дополнительные пакеты, то я выбрал второй вариант. Итак, устанавливаю пакетный менеджер Homebrew командой:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

И обязательно добавляю Homebrew в переменную PATH, выполнив еще пару команд:

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> $HOME/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

Теперь устанавливаю iTerm2:

brew install iterm2

Запускаю свежеустановленный новый терминал, который из коробки выглядит почти так же как стандартный.

Стандартный терминал masOS
Стандартный терминал masOS
iTerm2
iTerm2

Oh My Zsh и Powerlevel10k

Добавлю в него красок и функциональности. Для этого я буду пользоваться фрейворком для конфигурации zsh Oh My Zsh. Говорят, что он делает работу терминала медленнее. Но конкретно в моем случае — я не заметил какого-то дискомфортного снижения скорости открытия окон терминала или выполнения команд, но вот настройка с его довольно удобная.

Устанавливаю OhMyZsh очередной командой в терминале:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

И сразу же добавляю ультра удобную тему powerlevel10k:

brew install powerlevel10k
echo "source $(brew --prefix)/share/powerlevel10k/powerlevel10k.zsh-theme" >> ~/.zshrc

И все готово. Запускаю iTerm2 снова и попадаю в меню настройки темы powerlevel10k.

wizard настройки темы powerlevel10k
wizard настройки темы powerlevel10k

Тут уже каждый настраивает на свой вкус (если что-то пошло не так или потом захочется перенастроить — эту настройку можно будет вызвать заново). После настройки еще раз перезапускаю iTerm2 и мой результат выглядит так:

iTerm2 c  powerlevel10k
iTerm2 c powerlevel10k

Плагины

Но это еще не все. Как я уже говорил у iTerm2 есть возможность устанавливать расширения. И парочка из них мне показалась очень полезными:

  • zsh-autosuggestions — автодополнение вводимых команд

  • zsh-syntax-highlighting — подсветка синтаксиса

Копирую их такими командами из гит-репозитория

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

Редактирую файл .zshrc, добавив их названия в строку с плагинами:

plugins=(git zsh-autosuggestions zsh-syntax-highlighting)

Перезапускаю терминал и проверяю, что новые плагины работают

плагины в действии
плагины в действии

Добавим цвета

И остается еще одно маленькое, но очень полезное для меня, улучшение — я хочу чтобы каждая новая вкладка была своего цвета (случайного). Такой плагин я найти не смог, а потому сделал сам. Для этого так же нужно изменить файл .zshrc, добавить в конец такой код:

PRELINE="\r\033[A"

function color { 
    echo -e "\033]6;1;bg;red;brightness;$((1 + $RANDOM % 255))\a"$PRELINE
    echo -e "\033]6;1;bg;green;brightness;$((1 + $RANDOM % 255))\a"$PRELINE
    echo -e "\033]6;1;bg;blue;brightness;$((1 + $RANDOM % 255))\a"$PRELINE  
}

color

Получаю вот такой эффект:

цветные вкладки в студию!
цветные вкладки в студию!

Заключение

После настройки iTerm2 стал моим идеальным инструментом для работы в консоли: быстрым, умным и красивым. Чтобы в будущем не проходить всю настройку в ручную, я автоматизировал настройки скриптом ссылка на github.

Надеюсь, эта статья вдохновит вас на эксперименты с терминалом. Настраивайте его под свои задачи и получайте удовольствие от работы!

Комментарии (5)


  1. sl4mmer
    28.01.2025 06:34

    Честно говоря, раccчитывал на что то более оригинальное, статья опоздала лет на 15, примерно


  1. SunchessD
    28.01.2025 06:34

    Идея с разными цветами табов понравилась. Я еще пользуюсь плагином zsh-z быстрого перехода между проектами и web search для приска из терминала


    1. tema_marvel Автор
      28.01.2025 06:34

      zsh-z прикольный плагин, но мне хватает истории команд + автодополнения, потому решил не раздувать список плагинов тем, чем не пользуюсь


  1. devoln
    28.01.2025 06:34

    Вкладки можно и в стандартном терминале использовать. Так и не понял, зачем iTerm2 нужен.

    А что у него с потреблением ресурсов? А то я как-то раз заметил, что стандартный терминал у меня сожрал 6.5 ГБ оперативки. Причём, они не освободились даже после закрытия всех окон. Пришлось завершать процесс. Как терминал, рисующий только текст, может жрать столько памяти?! Думаю, даже видео со всей историей прокрутки весило бы меньше.


    1. tema_marvel Автор
      28.01.2025 06:34

      В моем случае, iTerm2 позволил не просто делать вкладки, но и раскрашивать их. Такая цветовая дифференциация очень удобна для меня.

      По поводу потребления ресурсов -- ничего не скажу. В моей практике ни разу никакой терминал у меня не отъедал столько оперативки. Обычно я его просто не замечаю, сколько бы инстансов или вкладок не было открыто.

      Полагаю, что раз это так или иначе обертка над стандартным, то iTerm потребляет ресурсов столько же сколько стандартный + еще какие-то накладные расходы на себя.