devops:zsh-oh-my-zsh

Установка Zsh и Oh My Zsh!

sudo apt install zsh

Выбираем удобный вариант, в зависимости от установленного в системе ПО:

# Curl
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# Wget
sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"

Достаточно выполнить команду для текущего пользователя:

chsh -s $(which zsh)

Для включения популярной темы agnoster нужно открыть файл ~/.zshrc, найти строку ZSH_THEME=«robbyrussell» и заменить стандартную тему на нужную, в моем случае agnoster, итого получается ZSH_THEME=«agnoster». Не забываем про

source ~/.zshrc

Примечание: если при смене темы получаем уведомление «zsh | (anon):12: character not in range» - это значит что в системе нет поддержки локали en_US.UTF-8

Лечится довольно просто, но зависит от текущей установленной системы.

1-й способ (debian container):

  • Добавляем в /etc/locale.gen строку 'en_US.UTF-8 UTF-8'
  • Запускаем
    locale-gen

2-й способ (если в системе вообще нет пакета):

  • Ставим пакет и обновляем локали:
    apt-get install -y language-pack-en && update-locale

Если хочется чего-то иного, можно найти много тем на любой вкус:

На вкус и цвет все разные, но самые удобные на мой взгляд это agnoster, powerlevel10k

Установка powerlevel10k:

git clone https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k

Изменить тему:

ZSH_THEME="powerlevel10k/powerlevel10k"

Конфигурация:

p10k configure

Если нет иконок Git или нету «уголков» в строке навигации, то вам нужно поставить дополнительные шрифты. Большинство тем требует установки данных шрифтов, они никак не помешают, но будет работать как нужно. Если всё хорошо и косяков нет - ставить не нужно.

Примечание: Если вы работаете в Windows, шрифты так же необходимо поставить.

sudo apt install fonts-powerline

или

git clone https://github.com/powerline/fonts.git
cd fonts
./install.sh
cd ..
rm -rf fonts

Мне нравится solarized:

git clone git://github.com/sigurdga/gnome-terminal-colors-solarized.git ~/.solarized
cd ~/.solarized
./install.sh

Выбираем пункт 1 (dark theme). Затем выбираем 1 для загрузки dircolors-solarized. После установки редактируем .zshrc и добавляем строку:

eval `dircolors ~/.dir_colors/dircolors`

Основной сайт с плагинами: https://github.com/ohmyzsh/ohmyzsh/wiki/Plugins

И еще много всего тут: https://github.com/unixorn/awesome-zsh-plugins

Как может выглядеть секция с подключенными плагинами:

plugins=(
    git
    colored-man-pages
    docker
    ansible
    zsh-autosuggestions
    kubectl
)

Источник: https://kubernetes.io/docs/tasks/tools/install-kubectl/#enabling-shell-autocompletion

Добавляем строку в файл .zshrc:

source <(kubectl completion zsh)

Если нужен алиас для команды kubectl, добавляем:

echo 'alias k=kubectl' >>~/.zshrc
echo 'complete -F __start_kubectl k' >>~/.zshrc

Работает с историей zsh, очень полезно если периодически набираем длинные команды.

Сайт: https://github.com/zsh-users/zsh-autosuggestions

Установка:

  • Клонируем репозиторий в $ZSH_CUSTOM/plugins (по умолчанию ~/.oh-my-zsh/custom/plugins):
    git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
  • Добавляем в файл конфигурации ~/.zshrc:
    plugins=(zsh-autosuggestions)

    и перезапускаем сессию

Раскрашивает синтаксис

Сайт: https://github.com/zdharma-continuum/fast-syntax-highlighting

Установка:

  • Клонируем репозиторий
    git clone https://github.com/zdharma-continuum/fast-syntax-highlighting.git \
      ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/fast-syntax-highlighting
  • Добавляем в файл конфигурации ~/.zshrc:
    plugins=(fast-syntax-highlighting)

    и перезапускаем сессию

Нечеткий поиск по всему: от истории до каталогов и ключей командной строки для утилит.

Сайт: https://github.com/Aloxaf/fzf-tab

Примечания к установке:

  • Должен быть обязательно установлен оригинальный fzf
  • С списке плагинов fzf-tab должен быть ДО zsh-autosuggestions или fast-syntax-highlighting

Установка:

  • Клонируем репозиторий
    git clone https://github.com/Aloxaf/fzf-tab ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/fzf-tab
  • Добавляем в файл конфигурации ~/.zshrc:
    plugins=(fzf-tab)

    и перезапускаем сессию

Использование: как обычно нажимаем Tab при вводе команд и аргументов

Еще один вариант расширенного поиска по истории, не стоит использовать совместно с fzf-tab

Сайт: https://github.com/junegunn/fzf

Установка:

  • Клонируем репозиторий
    git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf; ~/.fzf/install
  • Отвечаем на вопросы

Все настройки хранятся в файле ~/.zshrc

uninstall_oh_my_zsh
sudo apt uninstall zsh
  • devops/zsh-oh-my-zsh.txt
  • Последнее изменение: 2023/11/29 12:27
  • fireball