====== Установка Zsh и Oh My Zsh! ======
===== Установка Zsh =====
sudo apt install zsh
===== Установка Oh My 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 -)"
===== Установка Zsh оболочкой по умолчанию =====
Достаточно выполнить команду для текущего пользователя:
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
Если хочется чего-то иного, можно найти много тем на любой вкус:
* Официальные: https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
* Дополнительные: https://github.com/ohmyzsh/ohmyzsh/wiki/External-themes
На вкус и цвет все разные, но самые удобные на мой взгляд это 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
)
==== 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-autosuggestions ====
Работает с историей 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)
и перезапускаем сессию
==== fast-syntax-highlighting ====
Раскрашивает синтаксис
Сайт: 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)
и перезапускаем сессию
==== fzf-tab ====
Нечеткий поиск по всему: от истории до каталогов и ключей командной строки для утилит.
Сайт: 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 ====
Еще один вариант расширенного поиска по истории, не стоит использовать совместно с fzf-tab
Сайт: https://github.com/junegunn/fzf
Установка:
* Клонируем репозиторий git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf; ~/.fzf/install
* Отвечаем на вопросы
===== Настройки Zsh =====
Все настройки хранятся в файле ~/.zshrc
===== Удаляем Zsh и Oh My Zsh =====
uninstall_oh_my_zsh
sudo apt uninstall zsh
{{tag>zsh oh my zsh}}