Skip to content

Среда разработки на Windows: ZSH и Cmder

В течении рабочего дня несколько часов я провожу в терминале. И мне важно удобство при каждодневном использовании такого инструмента. Для себя я нашел отличную связку из терминала Cmder и оболочки Zsh.

Zsh и Oh My Zsh

Zsh (Z shell) — это командная оболочка Unix, альтернативная стандартному Bash. По-сути, Zsh является расширенным Bash с большим количеством улучшений, как например, автодополнение команд из истории, возможность минимизации ввода за счет использования псевдонимов, промпты с сопроводительной информацией.

Несмотря на то, что Zsh такая мощная и расширяемая оболочка, в то же время, ее конфигурация может вызвать некоторые затруднения. Поэтому я предпочитаю использовать Oh My Zsh — фреймворк для управления конфигурацией Zsh. Он предоставляет кучу полезных плагинов и тем оформления для оболочки Zsh.

Установка Zsh

Приступим к установке! Запускаем терминал, устанавливаем Zsh и устанавливаем его как оболочку по-умолчанию:

sudo apt install -y zsh
chsh -s $(which zsh)

После перезапуска терминала мы попадем в оболочку Zsh, которая сначала нам предложит произвести ее настройку. Выбираем параметры по-умолчанию и переходим к установке Oh My Zsh.

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

Выполним команду, которая скачает и запустит скрипт-установщик Oh My Zsh:

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Открываем в редакторе (vim / nano) конфиг Zsh (~/.zshrc) и донастраиваем. Раскомментируем первый стейтмент, чтобы работали команды из Bash:

# If you come from bash you might have to change your $PATH.
export PATH=$HOME/bin:/usr/local/bin:$PATH

Выбираем тему оформления, мне нравится Agnoster, и прописываем ее в переменной окружения $ZSH_THEME:

# Set name of the theme to load --- if set to "random", it will
# load a random theme each time oh-my-zsh is loaded, in which case,
# to know which specific one was loaded, run: echo $RANDOM_THEME
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
ZSH_THEME="agnoster"

export DEFAULT_USER="$(whoami)"

Примечание. Для темы Agnoster чтобы скрыть имя пользователя из левого промпта, я устанавливаю переменную $DEFAULT_USER равную имени текущего пользователя.

Указываем список плагинов, которыми мы хотим пользоваться. Полный перечень доступных плагинов можно найти в документации. У меня он выглядит таким образом:

# Which plugins would you like to load?
# Standard plugins can be found in ~/.oh-my-zsh/plugins/*
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(
  git
  node
  npm
  oc
  docker
  debian
  Composer
  sudo
  zsh-autosuggestions
)

Выполнив все это в стандартном терминале WSL мы получим такой результат…

Оболочка Zsh, запущенная в стандартном эмуляторе консоли WSL. Выглядит непривлекательно :-(

Мда уж, далеко от идеала: ужасный черный фон, непонятные знаки вопроса. Все дело в стандартном эмуляторе терминала, поэтому установим альтернативный эмулятор Cmder.

Установка и настройка Cmder

На текущий момент, стандартный эмулятор практически невозможно нормально настроить и просто использовать. Я не хочу выжигать глаза, смотря в окошко с пиксельными шрифтами и темой оформления а-ля «матрица». Microsoft на Build 2019 только анонсировал свое новое приложение терминала, а пока мы будем использовать альтернативный эмулятор — Cmder.

Cmder — это портативный эмулятор консоли для Windows на основе ConEmu. Он поддерживает работу со вкладками, разделение окна, темы оформления, кастомные шрифты, запуск различных облочек (cmd, PowerShell, wsl). Скачайте Mini версию с официального сайта (нам нужен только эмулятор без стороннего софта), распакуйте и разместите где вам удобно в системе. Вы так же можете закрепить приложение на начальном экране и настроить горячие клавиши для запуска:

Настройка запуска Cmder через горячие клавиши

Прежде чем приступить к настройке оболочки Cmder, рекомендую установить шрифт Fira Code и пропатченые шрифты Powerline для использования совместно с темой Agnoster.

Fira Code — шикарный моноширинный шрифт с поддержкой лигатур, будет отлично смотреться в вашем редакторе и терминале.

Пропатченые шрифты Powerline добавляют недостающих знаков в уже знакомые вам гарнитуры, как Ubuntu Mono, Roboto Mono, Anonymous Pro и др. Для их установки выполните следующие шаги:

  1. Скачайте репозиторий powerline/fonts;
  2. Распакуйте скаченный архив;
  3. Откройте PowerShell от имени администратора;
  4. Установите политику исполнения командой Set-ExecutionPolicy Bypass;
  5. Перейдите в папку с распакованными шрифтами и выполните скрипт .\install.ps1;
  6. После этого можно вернуть политику запуска по-умолчанию Set-ExecutionPolicy Default и удалить папку и архив.

Теперь мы готовы к настройке Cmder:

  1. На вкладке Startup -> Tasks выбираем WSL, как базовый шелл;
  2. На вкладке General выбираем шелл, запускаемый при старте, конечно, WSL;
  3. На той же вкладке General выбираем цветовую схему. Я использую Solarized;
  4. На вкладке General -> Fonts выбираем шрифт. Я использую Fira Code;
  5. На вкладке General -> Tab bar отключаем галку Tabs on bottom, чтобы табы показывались сверху.

Примечание. Если при запуске консоли WSL::bash у вас запускается bash вместо zsh, попробуйте скопировать существующий таск на вкладке Startup -> Tasks, и заменить скрипт на:

set "PATH=%ConEmuBaseDirShort%\wsl;%PATH%" & %ConEmuBaseDirShort%\conemu-cyg-64.exe --wsl -cur_console:p -C ~

После всех манипуляций мы должны получить такую симпатичную консоль:

Оболочка Zsh, запущенная в эмуляторе Cmder. Выглядит симпатично, как и ожидалось.

Вместо заключения

Спасибо, что дочитали до конца. Надеюсь, информация из данного поста была вам полезна. До встречи в следующих постах серии.

Данная запись является частью серии "Среда разработки на Windows".

Среда разработки на Windows: WSL

Среда разработки на Windows: PHP и Node.js