post title image
👨‍💻

Наводим красоту в Windows Terminal

devopsgit

Тру разработчик должен работать из консоли!

Это удобнее, честно)

На первых порах, конечно будет наоборот. Будет непривычно. Многое надо будет понять и выучить. Но потом начинаешь замечать сходные концепции. А раз есть сходные концепции, значит есть пространство для автоматизации. И вот ты уже во всю пишешь свои скрипты, оборачивая рутинные действия в цельную команду, а твоя продуктивность взлетает (ну хорошо, она просто поднимается).

Банально работать при помощи клавиатуры быстрее, чем при помощи мыши, во многих случаях. Не отвлекаешься на то, чтобы перенести руку)

Но вот невезуха, ты разработчик на платформе Windows...

Все не так плохо, Microsoft выпустила preview версию приложения под названием Windows Terminal. Установить можно через Microsoft Store.

Что он нам дает? Можно создавать много вкладок с терминалами. Приложение удобно конфигурируется через файл настроек в формате json. Плюс, разработчики обещают поддерживать и обновлять его, и добавлять различные удобства.

UPD:

Старая инструкция устарела. Теперь можно просто скачать PowerShell 7 (есть опция через winget если позволяет версия системы). Потом идем на сайт и деалем все согласно инструкции. Максимальные сложности с которыми тут можно столкнуться - не забыть добавить команды инициализации модуля в свой профиль PowerShell.

[Obsolete]

По умолчанию в терминале можно создавать экземпляры Командной строки, PowerShell и даже Azure Cloud Shell, но этим дело не ограничется, можно добавлять свои оболочки, например, мы добавим Cmder (произносится - Commander). Почему его? Возможности кастомизации у этого эмулятора шире, чем у командной строки, и мы постараемся ими воспользоваться.

Поставка Cmder идет в 2х конфигурациях mini и full, последняя содержит в себе Git for Windows, но он у любого разработчика, скорее всего, уже установлен. Я качал mini сборку. Содержимое сборки — обыкновенный архив, который можно поместить где угодно и запустить Cmder.exe из него. Но забегая вперед скажу, что нам понадобиться путь без пробелов в именах папок. Я нашел для него уютное место в папке

~/AppData/Local/Programs/Cmder

Я бы посоветовал для вящего удобства добавить парочку переменных среды:

  • CMDER_ROOT - это папка, где лежит распакованный архив
  • ConEmuDir - %CMDER_ROOT%\vendor\conemu-maximus5
  • По желанию можно и в Path добавить

Далее открываем файл настроек Windows Terminal и добавляем в секцию profiles.list профиль:

{
  "guid": "{5b4ef9a8-4506-4ac9-930a-5eb1fd0ebf20}",
  "name": "Cmder",
  "commandline": "cmd.exe /k %cmder_root%/vendor/init.bat",
  "icon": " %cmder_root%/icons/cmder.ico",
  "hidden": false
}

Если есть желание, чтобы новая вкладка терминала по умолчанию открывалась как Cmder, можно в корень файла добавить поле:

"defaultProfile": "{5b4ef9a8-4506-4ac9-930a-5eb1fd0ebf20}",

Мы получили возможность создавать окна Cmder, но пока что они мало отличаются от командной строки. Добавим немного стиля. В секцию schemes настроек Windows Terminal можно добавлять свои именованные цветовые схемы:

{
  "background": "#282C34",
  "black": "#282C34",
  "blue": "#61AFEF",
  "brightBlack": "#282C34",
  "brightBlue": "#61AFEF",
  "brightCyan": "#56B6C2",
  "brightGreen": "#98C379",
  "brightPurple": "#C678DD",
  "brightRed": "#E06C75",
  "brightWhite": "#DCDFE4",
  "brightYellow": "#E5C07B",
  "cyan": "#56B6C2",
  "foreground": "#DCDFE4",
  "green": "#98C379",
  "name": "One Half Dark",
  "purple": "#C678DD",
  "red": "#E06C75",
  "white": "#DCDFE4",
  "yellow": "#E5C07B"
}

а в ранее добавленный профиль эмулятора поле:

"colorScheme": "One Half Dark"

Можно еще больше! Есть такой замечательный плагин Cmder-powerline-prompt. Он позволяет кастомизировать строку статуса в консоли Cmder. Это и красивое отображение пути текущей директории, и отдельные обозначения при работе с репозиториями и много чего еще.

Установка не хитрая заключается в том, что надо скачать архив и скопировать все файлы с расширением .lua в папку %CMDER_ROOT%/config. Но это только полдела, системные шрифты не поддерживают те символы, которые плагин добавляет в строку статуса, так что надо поставить кастомные.

В принципе можно скачивать и устанавливать шрифты по отдельности, а можно скачать архив и запустить скрипт install.ps1. Это рекомендуемый способ, если после установки шрифта, в консоли остались нераспознанные символы (различные прямоугольники или вопросы). Вот тут полная инструкция как с этим бороться.

Так же стоит заметить, что не у всех работают все шрифты, например у меня подцепился и нормально выглядит только DejaVu Sans Mono for Powerline.

Шрифт также надо указать в профиле эмулятора в настройках Windows Terminal:

"fontFace": "DejaVu Sans Mono for Powerline"

Если все сработало как надо, вместо довольно страшной командной строки должно было получиться что-то вроде этого:

example

Тут уже и в git поприятнее работать. Совсем горячие парни могут найти полезным вот этот репозиторий, и получить строку вида:

extra-example