Contents

Установка и настройка оболочки zsh.

Установка zsh.

Обновим пакеты и установим необходимое:

1
2
3
$ sudo apt update
$ sudo apt install zsh
$ sudo apt install powerline fonts-powerline

Powerline - это плагин строки состояния для vim, который предоставляет строки состояния и подсказки для нескольких других приложений, включая zsh, bash, tmux, IPython, Awesome и Qtile.

Установка Oh my zsh.

Клонируем репозиторий Oh my zsh и создаём новый конфиг-файл .zshrc:

1
2
$ git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
$ cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

В ~/.zshrc можно установить тему, добавить перемменные окружения или ещё что-то. Выбрать тему можно здесь, я использую эти 2 темы:

1
2
3
ZSH_THEME="steeef"
# либо
ZSH_THEME="ys"

Установка подсветки синтаксиса Oh my zsh.

Клонируем репозиторий и добавляем syntax-highlighting в файл конфигурации ~/.zshrc:

1
2
$ echo "source $HOME/.zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> "$HOME/.zshrc"
$ echo "source $HOME/.zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> "$HOME/.zshrc"

Установка плагина автодополнения для zsh.

Клонируем репозиторий zsh-autosuggestions.

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

В файле ~/.zshrc меняем строку plugins=(git) на plugins=(git zsh-autosuggestions). После сохранения нужно перелогиниться или перечитать конфиг ~/.zshrc.

Установка командной оболочки по-умолчанию.

Сделать это можно с помощью утилиты chsh:

1
2
3
4
# сменить на zsh
$ chsh -s /bin/zsh
# сменить на bash
$ chsh -s /bin/bash

Установка fzf.zsh для более удобного поиска по Ctrl + r.

Клонируем репозиторий, устанавливаем и перечитываем файл конфигурации ~/.zshrc:

1
2
3
$ git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
$ ~/.fzf/install
$ source ~/.zshrc

Мои текущие настройки в файле ~/.zshrc:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# myuser - Заменить на вашего пользователя

export ZSH="/home/myuser/.oh-my-zsh"
ZSH_THEME="ys"
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
source $ZSH/oh-my-zsh.sh
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
export PATH=$PATH:$HOME/.local/bin
eval $(~/.linuxbrew/bin/brew shellenv)
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
autoload -U +X bashcompinit && bashcompinit
complete -o nospace -C /usr/bin/terraform terraform
export TF_VAR_do_token="There is Digital Ocean token for Terraform"
export TF_VAR_HC_TOKEN="There is Hetzner token for Terraform"
export HC_KEY="There is Hetzner token"
export VSCALE_KEY="There is Vscale token"
if [ -f '/home/myuser/yandex-cloud/path.bash.inc' ]; then source '/home/myuser/yandex-cloud/path.bash.inc'; fi
if [ -f '/home/myuser/yandex-cloud/completion.zsh.inc' ]; then source '/home/myuser/yandex-cloud/completion.zsh.inc'; fi
# настройки автодополнения в текущую сессию zsh
source <(kubectl completion zsh)
source <(doctl completion zsh)