iTerm2 — это популярный эмулятор терминала для macOS. В этой статье я хочу поделится своим опытом его использования. Я не фанат работы с OS через консоль и если есть возможность сделать что-то через удобный GUI -- я выберу этот вариант, но есть ряд задач которые я делаю в терминале, например:
-
Запуск скриптов для рабочих проектов
-
Использование пакетного менеджера Homebrew
-
Работа со CLI-утилитами
В первую очередь терминал для меня — это конечно запуск рабочих скриптов. Не самая крупная задача и долгое время мне хватало стандартного терминала macOS, но со временем я стал обращать внимание, что я держу открытыми несколько окон терминала в каждом из которых запускаю всего пару команд и было бы очень удобно переключаться не между окнами терминала, а между табами в одном окне. Оказалось, что эту задачу прекрасно решает iTerm2. Он не только позволяет открывать несколько сессий терминала в разных вкладках, но и поддерживает кучу расширений и разные темы оформления. Я потратил вечерок на настройку, которая сделала мою работу в терминале еще чуть удобнее и визуально приятнее, и хочу ей поделится.
Установка iTerm2
Процесс простой. Установить iTerm2 можно двумя способами:
-
Скачать образ с официального сайта
-
Использовать 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
Запускаю свежеустановленный новый терминал, который из коробки выглядит почти так же как стандартный.


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.

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

Плагины
Но это еще не все. Как я уже говорил у 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="r33[A"
function color {
echo -e "33]6;1;bg;red;brightness;$((1 + $RANDOM % 255))a"$PRELINE
echo -e "33]6;1;bg;green;brightness;$((1 + $RANDOM % 255))a"$PRELINE
echo -e "33]6;1;bg;blue;brightness;$((1 + $RANDOM % 255))a"$PRELINE
}
color
Получаю вот такой эффект:

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