Oh My Zsh - Улучшаем iTerm
UPD 2023.12.15
Я несколько лет назад пом енял мак и больше не лез к Oh My Zsh. Несмотря на этот пост, честно говоря, я так и не понял зачем я все это делал. Ну да, визуал, но боже, оно действительно так сильно вам нужно? Если да, то просто скачайте Warp Terminal. А вообще, советую Hyper либо встроенный терминал в VSCode. Таков мой путь Джедая
Эта инструкция написана для Mac'овского iTerm, но при помощи несложных манипуляций может применяться и в других термианалах в т.ч. на удаленных Linux машинах
TL;DR (Вкратце)
- Установка HomeBrew
- Установка оболочки zsh
- Установка оболочки для zsh :) (Oh My Zsh)
- В iTerm делаем, чтобы вместо Bash юзался Zsh
- Меняем дефолтную цветовую схему в iTerm
- Устанавливаем пропатченные шрифты с доп. символами
- Устанавливаем тему OMZ (Oh My Zsh)
- Устанавливаем плагины OMZ
- Прописываем все это в настройках OMZ
Установка HomeBrew
Это аналог пакетного менеджера apt в Linux. Через него гораздо проще устанавливать многие вещи, вроде оболочки Zsh и многих плагинов для нее
В терминал прописываем
$ xcode-select --install
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Установка Zsh
Оболочка, типа всем известного баша, но с кучей настроек и возможностей для кастомизации
В терминал:
$ brew install zsh
Установка Oh My Zsh
Oh My Zsh это фреймворк, через который и будет настраиваться Zsh. Не стоит их путать. Все необходимые нам настройки будут производиться с единственного файла.
Установка:
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
Меняем оболочку на Zsh
Открываем настройки iTerm > Profiles > Default > Command: /bin/zsh При перезапуске iTerm у вас уже будет Zsh (пока что ненастроенный)
command > /bin/zsh
Установка цветовой схемы iTerm
- Скачиваем репозиторий с кучей-кучей схем
- В readme.md по скриншотам ищем схему, которая понравилась (у меня Afterglow. Люблю ее еще с Sublime Text 3)
- Находим ее в repo/schemes и испортируем в iTerm через
Preferences > Profiles > Default > Colors > Color Presets... > Import
Установка Powerline Fonts
Нужны для корректного отображения символов во многих темах. Без него в темах могут быть закарлючки вместо иконок
Вводим:
$ git clone https://github.com/powerline/fonts.git --depth=1 ; cd fonts
$ ./install.sh
$ cd .. ; rm -rf fonts
Изменяем в iTerm Profiles > Default > Text > Change Font > Meslo LG S Regular For Powerline
(Последнее можете выбрать другое, но обязательно кириллический и для Powerline)
Ус тановка темы для OMZ (Oh My Zsh)
Тема и делает всю красоту: добавляет особые фичи, изменяет оформление и тд
Список стандартных тем можно посмотреть здесь Я использую нестандартную Powerlevel9k. Если хотите ее же:
$ git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
Если вам приглянулась какая-то из стандартных, например, как мне, Agnoser, то переходим к следующим шагам, игнорируя этот. Установка самой темы будет в конце
Установка плагинов для OMZ
Плагины добавляют новые алиасы к коммандам, а в некоторых случаях и изменяют вид терминала, например, при входе в папку .git репозитория
Список стандартных плагинов здесь. Я перечислил ниже те, которые использую
Последний добавляет крутую подсветку синтаксиса для всего вводимого текста в терминал, но требует отдельной загрузки, тк не стандартный
$ brew install zsh-syntax-highlighting
Ниже мы активируем его, другие плагины, темы и немного поправим настройки OMZ
Настройка Oh My Zsh
Устанавливаем скачанные плагины, темы, добавляем дополнительные настройки
open ~/.zshrc
У меня конфиг выглядит так:
# Не трогаем
export PATH=$HOME/bin:/usr/local/bin:$PATH
export ZSH="/Users/amd/.oh-my-zsh"
# Прописываем выбранную тему
ZSH_THEME="powerlevel9k/powerlevel9k" #af-magic
# Добавляет автокоррекцию вводимых команд, иногда сбоит
ENABLE_CORRECTION="true"
HIST_STAMPS="yyyy-mm-dd"
# Через пробел плагины, которые нужно активировать
plugins=(git docker docker-compose osx zsh-syntax-highlighting)
# Требуется для некоторых тем, чтобы был короткий и красивый путь
# Должно быть идентичным выхлопу с whoami
DEFAULT_USER="amd"
# Вторая строчка нужна, чтобы zsh-syntax-highlighting работал корректно
source $ZSH/oh-my-zsh.sh
source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh