configurations/program/src/ohmyzsh.md

2.9 KiB
Raw Blame History

Oh My ZSH!

Z shell, zsh - одна из современных командных оболочек UNIX, использующаяся непосредственно как интерактивная оболочка, либо как скриптовый интерпретатор.

Установка

Установка zsh в Linux Solus:

sudo eopkg it zsh

Oh My ZSH!

Oh My ZSH! - конфигурация для управления zsh.

Установка

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

Если необходимо установить в качестве основного shell выполнить:

chsh -s $(which zsh)

После установки перезапустить сеанс для применения изменений!

Плагины

zsh-autosuggestions

Предлагает команды по мере ввода на основе истории и завершений:

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

Добавить в файл .zshrc плагин zsh-autosuggestions:

plugins=( 
    # other plugins...
    zsh-autosuggestions
)

zsh-syntax-highlighting

Этот пакет обеспечивает подсветку синтаксиса для оболочки zsh. Позволяет выделять команды при их вводе в командной строке zsh.

Установка:

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

Добавить в файл .zshrc плагин zsh-syntax-highlighting:

plugins=( 
    # other plugins...
    zsh-autosuggestions
    zsh-syntax-highlighting
)

Настройка терминала

Убрать имя пользователя и компьютера - добавить пустой блок prompt_context в файл .zshrc:

prompt_context() {}

Для ввода команды с новой строки - добавить символ перевода на новую строку (\n) в функцию prompt_end() настройках темы zsh-theme (например в ~/.oh-my-zsh/themes/agnoster.zsh-theme).

Было:

prompt_end() {
  if [[ -n $CURRENT_BG ]]; then
    echo -n " %{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR"
  else
    echo -n "%{%k%}"
  fi
  echo -n "%{%f%}"
  CURRENT_BG=''
}

Стало:

prompt_end() {
  if [[ -n $CURRENT_BG ]]; then
    echo -n " %{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR"
  else
    echo -n "%{%k%}"
  fi
  echo -n "\n$SEGMENT_SEPARATOR%{%f%}"
  CURRENT_BG=''
}

Для применения изменений возможен перезапуск терминала!