Привет, Хабр! Сегодня делимся гайдом по началу работы с Windows Terminal. Да, поскольку он о начале работы с инструментом, в основном в материале описываются какие-то базовые моменты. Но я думаю, что и профессионалы смогут подчерпнуть для себя что-то полезное, как минимум из списка полезных ссылок в конце статьи. Заглядывайте под кат!

Windows Terminal — это новое, современное, быстрое, эффективное, мощное и производительное терминальное приложение для пользователей инструментов и оболочек командной строки, таких как Command Prompt, PowerShell и WSL.
Windows Terminal будет поставляться через Microsoft Store в Windows 10 и будет регулярно обновляться, гарантируя, что вы всегда будете идти в ногу со временем и сможете пользоваться новейшими функциями и последними улучшениями с минимальными усилиями.

Меня не устраивал ни один из найденных альтернативных терминалов (как в 2009-м, когда я начал работу над ConEmu
, так и сейчас). Казалось бы требований немного, вот основные:
- работа с консольными приложениями, использующими консольное API
: например Far
просто не запустится в mintty
или PowerShell ISE
; - визуальные улучшения вроде табов (вкладок)
и split-screen
; - быстрая и удобная работа с пометкой/копированием/вставкой текста;
- должен быть похож на терминал, а не на рождественскую игрушку с кучей графических свистелок и сопелок которые даже отключить нельзя;
- не должен зависеть от сторонних библиотек типа . Net, Qt, VC/GCC redist и прочих устанавливаемых пакетов, занимать по возможности мало места и не требовать инсталляции на новую машину;
- наконец, мне, как приверженцу Far Manager, хотелось интеграции с этим файловым менеджером — редакторы и вьюверы в табах, drag&drop файлов между Far и другими приложениями и т.п.
Отвечает ли этим требованиям ConEmu? Терминал (Free & OpenSource) пишется программистом «для себя» с учетом пожеланий других пользователей программы. В минимально-необходимой комплектации занимает около 2 мегабайт, что конечно больше нескольких килобайт, но все-таки пренебрежимо мало. Установки не требует, может быть портабельным если рядом с ConEmu.exe создать файлик ConEmu.xml
. От сторонних библиотек не зависит.

- Описание
- Убедили! Как принять участие?
- Скриншоты
- Запуск новых консолей
- Автообновление
- Добавление нового профиля
- Windows Terminal Preview
- Статусная строка
- Установка
- Цветовые палитры
- Когда я смогу его получить?
- Ключевые функции Windows Terminal
- Несколько вкладок
- Красивый текст
- Настройки и конфигурируемость
- Больше!
- Обзор возможностей
- Дефолтный профиль
- Настройка
- Хорошо, а что насчет участия в существующем проекте терминала или приложения в Open-Source?
- Панель задач Windows 7
- Default terminal
- Выбор шелла
- Quake/Tilda
- IDE style
- Установка
- Структура Settings. json
- Вкладка Debug
- Немного истории
- Подождите… вы сказали в Open-Source?
- Профили
- Первый запуск
- Пометка, копирование и вставка текста
- Вставка текста из буфера обмена
- Выбор и вставка путей к файлам и папкам
- Бонус в командной строке
- Гиперссылки и ошибки компиляции
- Windows Terminal
- Keys & Macro
- Первый запуск
- ANSI X3
- Прозрачность окна ConEmu
- Табы
- Требования
- TrueColor
- Полезные ресурсы
- Базовая кастомизация
- Фон
- Цветовая схема
- Начертание шрифта
- App distinct
- Шрифт
- ConEmu Here
- Разное
- Far Manager
- Фоновая картинка
- Это звучит потрясающе, но почему бы вам просто не улучшить существующую Windows Console?
- Заключение
- Обновлено
- Extend foreground colors
Описание
Терминальная программа — Hyperterminal
была разработана в 1985 году, и поставлялась в ОС Windows версий 95 – XP. Современный вариант не является частью стандартного пакета ПО для платформы Microsoft, но доступен для скачивания на сайте компании Hilgraeve. Актуальная сборка 7.0 поддерживает системы Windows 7, 8, 10 и Vista.
Используя Hyperterminal
, вы можете объединить два ПК в локальную сеть. Для этого может использоваться телефонный кабель или витая пара. Настройка производится через стандартное меню. Войдите в «Пуск», найдите подменю «Связь» и вызовите через него эту команду. В диалоговом окне задайте тип подключения, придумайте для него название.
- Прямое соединение осуществляется через COM-порт компьютера;
- Поддерживается протокол TCP/IP;
- Возможно подключение к доскам объявлений BBS;
- Осуществляется соединение через модем/нуль-модемное подключение к хост-компьютерам;
- Через программу Hyperterminal можно принимать и получать файлы.
На последнем пункте остановимся подробнее.
Чтобы отправить файл, откройте соответствующий пункт в меню, укажите имя или выберите через «обзор». Для приёма требуется указать, в какую папку будет выполнено сохранение, нажать кнопку «принять». В процессе отображается системная информация о процедуре пересылки.
Разобраться с программой Hyperterminal сможет даже пользователь, не являющийся специалистом по настройке сетей.
Убедили! Как принять участие?
Посетите репозиторий по адресу github.com/Microsoft/Terminal
, чтобы клонировать, собрать, протестировать и запустить терминал! Кроме того, мы будем признательны, если вы будете сообщать об ошибках и делиться фидбэком с нами и сообществом, а также исправлять проблемы и вносить улучшения в GitHub.
Этим летом попробуйте установить и запустить Windows Terminal из Microsoft Store. Если вы столкнетесь с какими-либо ошибками, поделитесь отзывом через Feedback Hub или раздел Issues на GitHub, который предназначен для вопросов и обсуждений.
Скриншоты



Запуск новых консолей


Можно создать ярлык и запускать новую консоль в уже запущенной копии ConEmu. Например, создайте на рабочем столе ярлык для запуска Far Manager (считаем что Far и ConEmu установлены в папку C:\Far)
"C:\Far\ConEmu.exe" /single /cmd "C:\Far\Far.exe"
Запуск из списка переходов
(Jump List) панели задач Windows 7. Отсюда удобно запускать наиболее употребительные задачи, например запуск компиляции ваших проектов.
Быстрый запуск по комбинации клавиш. Если ярлыков (хоткей можно задать в свойствах ярлыка) и задач (Win+N и цифра номера задачи) не хватает – можно создать макрос запуска любой команды. Откройте вкладку «Keys & Macro» диалога настройки (Win+Alt+K), выберите один из «Macro NN» и введите в поле «GUI Macro» что-то вроде:

Из командной строки шелла, запущенного во вкладке ConEmu можно запустить новую вкладку с помощью специального параметра -new_console
. Его опции позволяют запускать вкладки в режиме администратора, под другим пользователем, включать и отключать подтверждение закрытия после завершения команды, запускать вкладки «в фоне», разбить активную консоль вертикально или горизонтально (split-screen).
cmd /c dir /s c:\ -new_console:bc
или использовать cmd-файл, включенный в поставку ConEmu
csudo dism.exe /online /enable-feature /featurename:NetFX3 /All /Source:D:\sources\sxs /LimitAccess
В контекстном меню таба (правый клик на табе или Shift+правый клик в консоли) есть пункт «Duplicate root». Он создает копию шелла в новой вкладке. Например в текущей вкладке cmd вы запустили компиляцию проекта, при вызове «Duplicate root» будет создана новая вкладка с тем же текущим путем, что был до запуска компиляции, и с теми же переменными окружения.
Аналогично действуют комбинации клавиш Ctrl+Shift+O и Ctrl+Shift+E, но они создают копию шелла, разбивая активную консоль вертикально или горизонтально (split-screen).
Автообновление
ConEmu умеет обновляться автоматически, если он был установлен инсталлятором или развернут из 7z–архива. Для обновления 7z–архивом требуется установленный архиватор 7zip или WinRar. На владке «Update» можно выбрать параметры обновления: проверять при запуске или ежечасно; показывать диалог с сообщением о новой версии или только нотификацию в TSA; обновляться на последнюю или только на стабильную версию; настройка proxy–сервера; путь для хранения скачанных версий и т.д.
Добавление нового профиля
Новые профили можно добавлять динамически с помощью терминала или вручную. Терминал Windows автоматически создаст профили для распределений PowerShell и WSL. Эти профили будут иметь свойство «source», которое сообщает терминалу, где он может найти соответствующий исполняемый файл.
Если вы хотите создать новый профиль вручную, вам просто нужно сгенерировать новый «guid»
, указать «name» и предоставить исполняемый файл для свойства «commandline».
Примечание.
Вы не сможете скопировать свойство «source» из динамически созданного профиля. Терминал просто проигнорирует этот профиль. Вам нужно будет заменить «source» на «commandline» и предоставить исполняемый файл, чтобы дублировать динамически созданный профиль.
Windows Terminal Preview
Windows Terminal Preview — это сборка, в которой в первую очередь появляются новые функции. Эта сборка предназначена для тех, кто хочет видеть новейшие функции сразу после их выпуска. Эта сборка имеет ежемесячный цикл выпуска с новейшими функциями каждый месяц.

Статусная строка
По желанию отключается и настраивается. Доступно большое количество колонок вроде имени и PID активного процесса, координаты видимой области и курсора, ИД текущей раскладки клавиатуры, статусы CAPS/NUM/SCROLL, номер активной консоли, коэффициент прозрачности и т.д. По многим колонкам можно щелкать мышкой для их изменения.
Установка
Для адептов bash на зеркале проекта есть специально подготовленные пакеты для MinGW
. Их достаточно развернуть в папку MinGW чтобы в ConEmu сразу запускался «sh.exe –login –i».
Пользователям Far Manager: для полноценной работы в Far должны быть загружены плагины ConEmu. Убедитесь, что при использовании инсталлятора плагины устанавливаются в подпапку Plugins вашего каталога с Far.exe. Обратите внимание, что инсталлятор позволяет выбрать папку установки как для самого ConEmu так и для плагинов к Far.
Пользователям антивирусов: инсталлятор как и сам ConEmu троянов не содержит, как говорится, «исходники открыты».
При первом запуске программа спросит где вы предпочитаете хранить настройки — в файле ConEmu.xml
или в реестре.
Теперь можно запускать ConEmu.exe или ConEmu64.exe (разница между 32-битной и 64-битной версией отсутствует).
По умолчанию ConEmu при старте запускает один таб с «предпочитаемым» шеллом:
- Far.exe (если найден рядом с ConEmu.exe);
- cmd.exe или tcc.exe (если установлен TakeCommand или TCC/LE);
- sh.exe (если ConEmu установлен в режиме «MinGW»).
Цветовые палитры
На вкладке «Colors» можно выбрать одну из предопределенных цветовых схем (Solarized, Standard VGA, PowerShell, xterm, и др.) или настроить свою схему цветов. Настроенную схему можно сохранить: введите имя в поле «Schemes» и нажмите кнопку «Save».
Стандартной палитры в 16 цветов не всегда хватает, но в ConEmu есть две возможности расширения цветового пространства.
Когда я смогу его получить?
На сегодняшний день Windows Terminal и Windows Console доступны в Open-Source, так что вы уже можете клонировать, собирать, запускать и тестировать код из репозитория на GitHub:
Также, этим летом в Microsoft Store будет выпущена превью-версия Windows Terminal для первопроходцев и предоставления фидбэка.
А уже зимой мы планируем окончательно выпустить Windows Terminal 1.0, и мы будем работать с сообществом, чтобы убедиться, что он полностью готов, прежде чем мы выпустим!
Ключевые функции Windows Terminal
Несколько вкладок
Вы просили, и мы услышали! Наиболее часто запрашиваемая функция для терминала — это поддержка нескольких вкладок, и мы очень рады, что наконец-то смогли предоставить эту функцию. Теперь вы можете открывать любое количество вкладок, каждая из которых подключена к оболочке командной строки или приложению по вашему выбору, например, Command Prompt, PowerShell, Ubuntu на WSL, Raspberry Pi через SSH и т. д.

Красивый текст
В Windows Terminal используется GPU-ускорение DirectWrite/DirectX на основе движка рендеринга текста. Этот новый движок рендеринга текста будет отображать текстовые символы, глифы и символы, присутствующие в шрифтах на вашем ПК, включая идеограммы CJK, эмодзи, символы powerline, значки, лигатуры программирования и т. д. Этот движок даже рендерит текст намного быстрее, чем предыдущий движок GDI консоли!

У вас также будет возможность использовать наш новый шрифт! Мы хотели создать веселый, новый, моноширинный шрифт, чтобы улучшить современный внешний вид терминала. Этот шрифт не только будет включать лигатуры программирования, но и будет иметь собственный Open-Source репозиторий. Оставайтесь с нами для получения дополнительной информации о новом проекте шрифта!

Настройки и конфигурируемость
Мы связались со многими пользователями командной строки, которые любят кастомизировать свои терминалы и приложения командной строки. Windows Terminal предоставляет множество настроек и параметров конфигурации, которые дают большой контроль над внешним видом терминала и каждой из оболочек/профилей, которые можно открывать как новые вкладки. Настройки хранятся в структурированном текстовом файле, что упрощает конфигурирование для пользователей и/или инструментов.
Используя механизм конфигурирования терминала, вы сможете создать несколько “профилей” для каждой оболочки/приложения/инструмента, которые вы хотите использовать, будь то PowerShell, Command Prompt, Ubuntu или даже SSH-соединения с Azure или устройствами IoT. Эти профили могут иметь свою собственную комбинацию стилей и размеров шрифта, цветовых тем, уровней размытия/прозрачности фона и т. д. Теперь вы можете создать свой собственный терминал в своем стиле, который персонализирован на ваш уникальный вкус!
Больше!
После выпуска Windows Terminal 1.0, мы планируем начать работу со многими фичами, которые уже есть в нашем бэклоге, в дополнение ко многим фичам, которые вы, как сообщество, вероятно, добавите!
Обзор возможностей
Рассказать «про все» в рамках одной статьи невозможно, поэтому здесь описаны только некоторые функции, на мой взгляд наиболее интересные большинству пользователей.
Наглядность
. В табах могут отображается не только заголовки консолей, но и дополнительная информация вроде активного процесса, прогресса архивации, chkdsk, powershell, копирования в Far Manager. Например, не нужно переключаться в таб чтобы узнать закончилась ли компиляция проекта, запущенная в этом табе. В статусной строке можно настроить список отображаемых «колонок» вроде координат видимой области и курсора, PID активного процесса в консоли, статусов CAPS/NUM/SCRL, коэффициента прозрачности и др. Многие колонки кликабельны, например можно щелкнуть по «колонке» с прозрачностью для быстрого ее изменения.
Минималистичность
. Интерфейс (самого терминала, а не окна настроек) содержит всего два дополнительных графических элемента — табы и статусная строка. Но и их можно отключить, если вы предпочитаете «чистую» консоль.
Портабельность
. Настройки можно хранить в файле ConEmu.xml
созданном в папке программы.
Работа с текстом
. Поддерживаются два стиля пометки текста — обычный для текстовых редакторов и «прямоугольный» как в обычной консоли. Пометка и вставка текста удобна как с клавиатурой так и с мышкой.
Quake/Tilda
. Поддержка режима игровых консолей. Терминал умеет «выезжать» при нажатии выбранной комбинации клавиш (по умолчанию Ctrl+~) и прятаться при потере фокуса или нажатии Esc.
Запуск любых приложений
. Пользователь может настроить любое количество предопределенных задач (Task) для быстрого запуска в ConEmu или из списка переходов (jump list) панели задач Windows 7. Задача может запускать один или несколько процессов или шеллов (powershell, SDK, компиляция проектов и т.д.) Можно даже запускать простые GUI приложения вроде PuTTY, TaskManager, GVim.
Работа с цветом
. Несколько предопределенных палитр (например Solarized, PowerShell, xterm, и др.), возможность настройки своих цветов консоли, поддержка управляющих кодов ANSI X3.64, 24-битный цвет при работе в Far Manager.
Интеграция
. Умеет добавлять себя (и выбранные команды-шеллы) в контекстное меню Windows Explorer. Умеет перехватывать создание стандартного терминала Windows.
Гибкая настройка и управление
. В диалоге Settings можно найти настройки на любой вкус и цвет. Практически любому действию можно назначить комбинацию клавиш, а простейший макро-язык позволяет выполнять нестандартные действия.
Дефолтный профиль
При первом запуске Windows Terminal в качестве профиля по умолчанию устанавливается Windows PowerShell. Профиль по умолчанию — это профиль, который всегда открывается при запуске терминала, и это профиль, который открывается при нажатии кнопки новой вкладки. Вы можете изменить профиль по умолчанию, установив «defaultProfile» на имя вашего предпочтительного профиля в файле settings.json.
"defaultProfile": "PowerShell" Настройка
В принципе, ConEmu работает сразу и настройки не требует, но у любого пользователя/админа/программиста есть свои предпочтения и специфика работы.
Полный диалог настроек открывается либо с клавиатуры комбинацией Win+Alt+P либо вызовом из системного меню ConEmu пункта «Settings».
Можно заблудиться в куче вкладок и настроек, но все настройки сгруппированы по смыслу, а для неочевидных опций отображаются всплывающие подсказки при наведении курсора мышки. Наверное не стоит рассказывать в этой статье про каждую опцию, поэтому пробежимся только по основным и наиболее интересным.
Хорошо, а что насчет участия в существующем проекте терминала или приложения в Open-Source?
Мы тщательно изучили этот вариант во время планирования и решили, что наше участие в существующем проекте потребует изменения требований и архитектуры проекта таким образом, что это будет слишком деструктивным.
Вместо этого, создав новое Open-Source терминальное приложение и Open-Source Windows Console, мы можем предложить сообществу сотрудничать с нами в улучшении кода и использовании его в своих соответствующих проектах.
Мы считаем, что на рынке достаточно места для новых/разных идей о том, что терминал может и должен делать, и мы стремимся помочь экосистеме терминальных (и связанных с ней) приложений процветать и развиваться за счет внедрения новых идей, интересных подходов и захватывающих инноваций в этом пространстве.
Панель задач Windows 7
Поддержка списка переходов (Jump List). После создания вашего списка задач на вкладке «Tasks» включите флажок «Add ConEmu tasks to taskbar» и нажмите кнопку «Update Now».

Отображение прогресса на панели задач.

Default terminal
ConEmu может подменять собой стандартный терминал Windows, запуск с ярлыка «Windows SDK Command Prompt», запуск «ipconfig /all» из диалога Win+R, запуск консольных приложений из TotalCmd, отладка консольных программ в Visual Studio – все может быть перехвачено и запущено в ConEmu.
Выбор шелла
Итак, скорее всего вам нужно будет настроить свой список шеллов, как запускаемых при старте, так и быстро доступных.

Идем на вкладку «Startup». Если нужно запускать только один шелл — все просто: выбираем «Command line» и вводим требуемое, например:
C:\MinGW\msys\1.0\bin\sh.exe --login -i
В принципе, в качестве шелла можно запускать любое консольное приложение или командный файл для cmd, python, и т.п. Можно даже запускать некоторые GUI приложения вроде PuTTY, notepad, gvim и т.п.
Если при старте нужно запустить сразу несколько шеллов — идем на вкладку «Tasks» (задачи) и начинается магия. Диалог настроек и так перегружен, поэтому задачи создаются «в текстовом виде».
>C:\MinGW\msys\1.0\bin\sh.exe --login -i
cmd /k set ConEmuHooks=OFF & "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" -new_console:sV -new_console:t:SDK & set ConEmuHooks=
cmd -new_console:s1TH
*powershell -new_console:s2TH -new_console:t:PowerShell

Называем его «Shells», возвращаемся на вкладку «Startup» и выбираем «Specified named task».
В итоге при старте ConEmu получаем 4 консоли в сетке 2×2 причем активной будет вкладка sh.exe, а powershell.exe запускается в режиме админа (после подтверждения UAC) и его вкладка получает фиксированное название «PowerShell».
Параметр «-new_console» специальный параметр, обрабатывающийся в ConEmu и вырезающийся из командной строки при запуске программы. О нем можно писать много и долго, а пока отошлю на сайт проекта
.
Quake/Tilda
Вызов ConEmu в стиле игровых консолей доступен «из коробки». Открываем вкладку «Main» и включаем флажок «Quake style slide down». При желании там же включаем «Auto–hide on focus lose». Если рамка вообще не нужна – в поле «Frame width» поставьте «0» вместо «-1» («-1» — показывать рамку полностью). Здесь же можно настроить отступы поля консоли от краев окна ConEmu – включите «Center console in ConEmu workspace» и выберите количество пикселей в «Pad size».
Режим «поверх всех окон» можно включит на вкладке «Appearance» флажком «Always on top».
Показывать ли окно ConEmu на панели задач? Открываем вкладку «Task bar» и выбираем желаемые опции. По умолчанию в Quake режиме при минимизации (скрытии) окно скрывается в TSA (taskbar status area – область рядом с часиками), это опция «Auto minimize to TSA». А чтобы вообще не показывать иконку в панели задач – щелкните радиокнопку «Don’t show ConEmu window on Taskbar» и включите «Always show TSA icon» чтобы не потерять ConEmu.
Клавиша активации. Их может быть две (так все запущено на некоторых раскладках клавиатуры). Открываем вкладку «Keys & Macro» и в самом начале списка видим «Minimize/Restore» и «Minimize/Restore (alternative)». Можно выбрать любую комбинацию клавиш (по умолчанию это Ctrl+~), но имейте в виду, что эта комбинация регистрируется как глобальный хоткей в системе со всеми вытекающими. Например, некоторые комбинации могут быть уже зарезервированы системой или другими приложениями.
Клавиша скрытия. Та же что и клавиша активации, но дополнительно окно ConEmu можно скрывать просто клавишей Esc. Откройте вкладку «Task bar» и в группе «Minimize ConEmu by Esc» выберите опцию «Always». Там же есть флажок «Map Shift+Esc to Esc» чтобы можно было все-таки послать в консоль клавишу «Esc» если это необходимо.
Размер (высоту) окна можно менять. Наведите мышку на рамку (или на то место, где она должна быть), подождите пару секунд, и у окна появится обычная resizable рамка которую можно тянуть мышкой.
IDE style
Выше уже было сказано про запуск любых команд из списка переходов
. Например, для сборки ConEmu я сделал cmd-файл настраивающий окружение SDK и запускающий nmake или devenv.com.

Ключ «/single» в поле «Task parameters» указывает использовать один экземпляр ConEmu (запуск в новом табе). Ключ «-new_console:c» в тексте команды является аналогом «pause» в cmd, чтобы консоль не закрылась после завершения компиляции.
В случае ошибок компиляции (вывод компилятора сохраняется в файл Error.log) вызывается скрипт TypeBuildErrors.cmd "%~dp0Errors.log"
подсвечивающий строки с информацией об ошибках красным шрифтом, а предупреждения — синим. Исправив ошибки в редакторе Far Manager
можно перезапустить компиляцию — Win+~ (хоткей по умолчанию для перезапуска таба).
Установка
Windows Terminal доступен в двух разных сборках: Windows Terminal
и Windows Terminal Preview
. Обе сборки доступны для загрузки в Microsoft Store и на странице выпусков GitHub
.
Структура Settings. json
В Терминал Windows включены два файла настроек. Один из них — defaults.json, который можно открыть, удерживая клавишу Alt и нажав кнопку «Настройки» в раскрывающемся списке. Это неизменяемый файл, который включает в себя все настройки по умолчанию, которые поставляются с терминалом. Второй файл — settings.json, в котором вы можете применить все свои пользовательские настройки. Доступ к нему можно получить, нажав кнопку «Настройки» в раскрывающемся меню.
Следующим основным разделом файла является объект «profiles». Объект «profiles» разделен на два раздела: «defaults» и «list». Вы можете применить настройки
профиля к объекту «defaults», и они будут применяться ко всем профилям в вашем «list». «list» содержит каждый объект профиля, который представляет профили, описанные выше, и это элементы, которые появляются в раскрывающемся меню вашего терминала. Настройки, примененные к отдельным профилям в «списке», имеют приоритет над настройками, примененными в разделе «defaults».
Далее в файле расположен массив «schemes». Здесь можно разместить собственные цветовые схемы. Отличный инструмент, который поможет вам создать свои собственные цветовые схемы, — это terminal.sexy.
Наконец, в нижней части файла находится массив «actions». Перечисленные здесь объекты добавляют действия в ваш терминал, которые можно вызывать с клавиатуры и/или находить внутри палитры команд.
Вкладка Debug
В основном вкладка для отлова багов. Но может быть интересна и пользователям.
Например, при выборе радиокнопки «Shell» ConEmu показывает запускаемые в консоли процессы и загружаемые dll-ки. Почти то же самое можно подсмотреть в ProcessMonitor, но здесь есть бонус — при компиляции проектов VC cl.exe и link.exe запускаются не с ключами а с параметром пакетным-файлом. ConEmu покажет содержимое этого файла.
Немного истории
В начале был Zoin и его анонс Эмулятор консоли
на форуме Far Manager. Не знаю, планировал ли автор развитие эмулятора, но в 2009-м году появилось несколько форков предлагающих разные улучшения: вертикальную прокрутку, табы для редакторов и вьюверов Far, отображение контекстного меню для файлов по правой кнопке и перетаскивание файлов между консольным Far и другими приложениями. Идея мне понравилась и, объединив все «патчи», я стал развивать эмулятор добавляя новые возможности и исправляя баги. На тот момент было несколько альтернатив (самые известные – Console2
из бесплатных и TakeCommand
из платных), но ни одна у меня не прижилась. « Пользуюсь фаром 15 лет» поэтому в первую очередь нужна была оболочка для него.
Подождите… вы сказали в Open-Source?
Да, это так! Мы рады объявить, что мы открываем не только Windows Terminal, но и Windows Console, которая содержит инфраструктуру командной строки в Windows и предоставляет традиционный Console UX.
Нам уже не терпится поработать с вами над улучшением и расширением возможностей командной строки Windows!
Профили
Профили действуют как различные среды командной строки, которые вы можете настраивать внутри терминала. По умолчанию в каждом профиле используется отдельный исполняемый файл командной строки, однако вы можете создать столько профилей, сколько захотите, используя один и тот же исполняемый файл. Каждый профиль может иметь свои собственные настройки, которые помогут вам различать их и добавить в каждый свой собственный стиль.

Первый запуск
При первом запуске отображается диалог «Fast configuration», он содержит несколько основных опций влияющих на работу программы.

Install keyboard hooks
. ConEmu умеет отбирать у системы определенные комбинации клавиш (когда в фокусе окно программы). Например Win+цифра можно переключаться на таб с определенным номером. Практически все комбинации клавиш с ConEmu настраиваются или отключаются (Win+Alt+K), но если вам вообще не нужен перехват комбинаций с модификатором Win – можете отключить флажок.
Inject ConEmuHk.dll
. Для многих возможностей ConEmu требуется перехват определенных функций WinAPI. Библиотека ConEmuHk.dll (или ее 64-битная версия ConEmuHk64.dll) внедряется в запускаемые во вкладках ConEmu процессы и перехватывает функции через разделы импорта. К сожалению, перехватываемых функций становится все больше и соответственно увеличивается время перехвата. И хотя в цифрах это лишь миллисекунды, некоторые пользователи жалуются на замедление выполнения команд в ConEmu. Если вы из них – отключите этот флажок. В планах попробовать перейти на перехват в стиле detours, возможно это ускорит процесс.
Enable automatic updates
. Думаю, в переводе не нуждается. Обновление выполняется тем же способом, что и при установке. То есть если вы установили ConEmu распаковкой 7z–архива, то для обновления потребуется архиватор (7–zip или WinRar).
Пометка, копирование и вставка текста
Настроек на вкладках «Mark & Paste» и «Controls» много. Расскажу об умолчаниях.
Поддерживается два типа пометки текста:
- Text selection
— стандарт для текстовых редакторов; - Block selection
— прямоугольные блоки, как в обычной консоли.
Варианты для начала пометки в стиле «Text selection»: Shift+СтрелкаВлево, Shift+СтрелкаВправо или удерживая ЛевыйShift начните пометку мышкой (drag с зажатой левой кнопкой мышки).
Примечание
: при работе в Far Manager Shift+Стрелка обрабатываются в Far а не в ConEmu.
Копирование в буфер обмена помеченного блока с клавиатуры: Ctrl+C или Enter. Нажатие Esc отменяет пометку.
При пометке текста мышкой копирование выполняется сразу при отпускании левой кнопки мышки.
Вставка текста из буфера обмена
Ctrl+V вставляет только первую строку из буфера обмена. Почему только первую? Чаще всего в терминале запущен шелл и было бы обидно, если команда начнет выполняться до
того как вы проведете ревизию того, что вставилось в консоль.
Shift+Ins и щелчок правой кнопки мышки вставляет все строки из буфера обмена.
Выбор и вставка путей к файлам и папкам
Комбинации Ctrl+Shift+D и Ctrl+Shift+F открывают стандартные Windows-диалоги выбора пути к папке или файлу и вставляют выбранный путь в консоль.
Бонус в командной строке
При щелчке левой кнопкой мышки в командной строке ConEmu пытается переместить курсор в позицию щелчка. А Ctrl+BackSpace удаляет слово слева от курсора.
Гиперссылки и ошибки компиляции
Windows Terminal
Терминал Windows — это основная сборка продукта. Функции, которые поступают в Windows Terminal Preview, появляются в Windows Terminal через месяц эксплуатации. Это позволяет проводить обширное тестирование ошибок и стабилизацию новых функций. Эта сборка предназначена для тех, кто хочет получить функции после того, как они были изучены и протестированы сообществом Preview.
Keys & Macro
Здесь можно увидеть список всех комбинаций клавиш используемых в программе. Быстрый способ открыть эту вкладку – Win+Alt+K.
Также есть возможность задавать некоторое количество пользовательских действий через GuiMacro
. Например назначить на Ctrl+D выход из текущего шелла: print("exit\n")
.
Первый запуск
После установки терминала вы можете запустить приложение и сразу приступить к работе с командной строкой. По умолчанию терминал включает профили Windows PowerShell, Command Prompt и Azure Cloud Shell в раскрывающемся списке. Если на вашем компьютере установлены дистрибутивы Подсистемы Windows для Linux (WSL), они также должны динамически заполняться как профили при первом запуске терминала.
ANSI X3
В *nix терминалах можно использовать Escape-последовательности
и даже в DOS они были доступны со стандартным драйвером ANSI. SYS. В терминале Windows про них решили забыть, правда есть несколько программ позволяющих использовать ANSI в Windows, например ANSICON
.
В ConEmu поддержка ANSI X3.64 встроена. Для этого должны быть включены флажки «Inject ConEmuHk» и «ANSI X3.64» на вкладке «Features». Полный список поддерживаемых в ConEmu ANSI кодов
.
С помощью ANSI можно не только выводить цветной текст. Например в заголовке таба можно отображать текущую директорию в cmd
.
Прозрачность окна ConEmu
При желании на вкладке «Transparency» можно настроить прозрачность окна ConEmu. Можно выбрать различные значения прозрачности для активного и неактивного окна. Например ConEmu может полностью «исчезнуть» с экрана при потере фокуса если слайдер прозрачности для неактивного окна передвинуть в крайнее левое положение.
Если вы не отключили статусную строку, то в ней может отображаться текущее значение прозрачности в процентах (список отображаемых «колонок» статусной строки тоже настраивается). При щелчке мышкой по колонке с прозрачностью всплывает меню в котором можно быстро изменить коэффициент прозрачности или отключить его.
Табы
При работе с несколькими консолями одновременно или при работе с редакторами и просмотрщиками в Far Manager (в Far должен быть загружен плагин ConEmu) табы сильно облегчают жизнь. Кроме того, в заголовке таба показывается прогресс операции в процентах (копирование, распаковка архивов, chkdsk, прогресс в PowerShell, и др.)
В табе отображается значок «Щит» если эта консоль запущена в режиме администратора.
Отображаемый текст можно настроить по шаблону, например можно в табе показывать имя и PID активного процесса, порядковый номер консоли, заголовок окна консоли, имя редактируемого или просматриваемого в Far Manager файла, признак наличия изменений в редакторе.
Если cmd.exe запущен в режиме администратора – в заголовке окна консоли он отображает префикс «Администратор:». ConEmu умеет отбрасывать эту избыточную информацию.
Если табы не нужны – их можно полностью отключить или включить автопоказ при появлении более одного таба.
Переключение между табами также настраивается по желанию. Стандартные комбинации Ctrl+Tab и Ctrl+Shift+Tab. Режим «Recent mode» включенный по умолчанию позволяет перебирать табы в порядке их активации. При включенном «Lazy tab switch» фактическое переключение таба произойдет при отпускании клавиши Ctrl. А до отпускания клавиши Ctrl табы можно переключать и стрелками Влево/Вправо.
Табы можно активировать по номеру консоли, который можно показывать в заголовке таба. По умолчанию предлагается комбинация Win+цифра (должны быть включены флажки «Install keyboard hooks» и «Win+Number – activate console» на вкладке «Controls»). То есть Win+1 активирует первую консоль, Win+2 – вторую и т.д. Если консолей открыто более 9 то нужно нажимать последовательно две цифры удерживая клавишу Win, например «Win+2,4» активирует 24-ю консоль (и кому их столько понадобится?). Если открыты редакторы/вьюверы в Far Manager то Win+цифра будет последовательно перебирать их (флажок «Host-Key+Number iterates Far windows»).
Вместо клавиши «Win» можно выбрать любую другую комбинацию клавиш-модификаторов, например Ctrl+Shift или Apps. Перейдите на вкладку «Keys & Macro» и прокрутите список клавиш до пункта «Activate console by number». Вы можете выбрать любые три клавиши-модификатора.
Требования
Для запуска любой сборки Windows Terminal на вашем компьютере должна быть установлена Windows 10 1903 или более поздняя версия.
TrueColor
В Far 3.0 поддержка TrueColor стала нативной и настройку расширенных атрибутов (24бита на цвет и Bold/Italic/Underline) можно выполнить для любого элемента интерфейса. Кто говорил, что в фаре недостаточно цветов для подсветки групп файлов?
Опция может быть отключена на вкладке «Colors» флажком «TrueMod (24bit color) support». Ее отключение экономит некоторое количество мегабайт памяти.
Полезные ресурсы
Докуметация Windows Terminal
Скотт Хансельман: как сделать красивым Windows Terminal с помощью Powerline, шрифтов Nerd, кода Cascadia, WSL и oh-my-posh
Скотт Хансельман: Как настроить терминал с помощью Git Branch, Windows Terminal, PowerShell, + Cascadia Code!
Скотт Хансельман: Windows Terminal Feature PREVIEW – Кастомизируйте свои привязки клавиш, цветовые схемы, панели, и многое другое!
>_TerminalSplash – темы Windows Terminal
Базовая кастомизация
Вот несколько основных настроек, которые помогут вам начать настройку вашего терминала.
Фон
Одна из самых популярных настроек — настраиваемое фоновое изображение. Это настройка профиля, поэтому ее можно либо поместить внутри объекта «defaults» внутри объекта «profiles», чтобы применить ко всем профилям, либо внутри определенного объекта профиля.
"backgroundImage": "C:\Users\admin\background.png" Параметр «backgroundImage» принимает расположение файла изображения, которое вы хотите использовать в качестве фона вашего профиля. Допустимые типы файлов: .jpg, .png, .bmp, .tiff, .ico и .gif.

Цветовая схема
Список доступных цветовых схем можно найти на нашем сайте
документации. Цветовые схемы применяются на уровне профиля, поэтому вы можете поместить настройку внутри «значений по умолчанию» или в конкретный объект профиля.
"colorScheme": "COLOR SCHEME NAME" Этот параметр принимает название цветовой схемы. Вы также можете создать свою собственную цветовую схему и поместить ее в список «schemes», а затем установить в настройках профиля имя этой новой схемы, чтобы применить ее.
Начертание шрифта
По умолчанию Windows Terminal использует Cascadia Mono в качестве шрифта. Начертание шрифта — это настройка уровня профиля. Вы можете изменить шрифт, установив «fontFace» на имя шрифта, который вы хотите использовать.
"fontFace": "FONT NAME"` Совет
: Терминал Windows также поставляется с начертанием шрифта Cascadia Code, который включает программные лигатуры (см. Gif ниже). Если вы используете Powerline, Cascadia Code также поставляется в PL-версии, которую можно загрузить с GitHub
.
App distinct
Здесь можно изменить некоторые опции в зависимости от процесса в консоли.
Например для PowerShell запущенном в режиме админа задать свою палитру.
Здесь же будет возможность задать свою фоновую картинку (просят давно, но пока не готово).
Шрифт
Вкладка «Main». Шрифт можно выбрать любой: моноширный или пропорциональный, растровый или векторный, с включенным сглаживанием или отключенным (Clear Type, Standard, None). Пропорциональный шрифт в консоли смотрится несколько странно, но если хочется – то можно отключить флажок «Monospace».
Хочется отметить также то, что ConEmu умеет использовать не только шрифты установленный в системе. Просто скопируйте желаемые файлы шрифтов (поддерживаются fon, ttf, otf, и моноширные bdf) в папку ConEmu и перезапустите программу. Новые шрифты появятся в списке доступных на вкладке настройки шрифтов «Main». Не стоит копировать слишком много шрифтов – их обработка может занять значительное время при старте программы. Регистрацию «локальных» шрифтов можно отключить на вкладке «Features» флажком «Auto register fonts».
Для отображения псевдографики (рамки в Far Manager и т.п.) можно настроить отдельный шрифт. В некоторых шрифтах используемых в качестве основного рамки получаются несимпатичными.
Иногда нужно быстро поменять размер шрифта. Это можно сделать не открывая окно настроек — удерживая клавишу Ctrl крутите колесико мышки.
ConEmu Here
На вкладке «Integration» можно настроить контекстное меню для Windows Explorer и установить ConEmu как терминал по умолчанию для запуска консольных приложений.
«ConEmu Here» и «ConEmu Inside». Вы можете создать неограниченное количество пунктов меню для запуска разных шеллов (cmd, powershell, bash, SDK и т.п.) Введите команду в поле «Command» дайте пункту меню соответствующее название в поле «Menu item», опционально укажите путь к иконке отображаемой в меню (не работает в WinXP) и нажмите кнопку «Register». Список ранее зарегистрированных пунктов отображается в выпадающем списке «Menu item».
Отличие «ConEmu Inside» от «ConEmu Here» в том, что терминал будет запущен как часть окна Windows Explorer (Inside).
ConEmu может использоваться как плагин и в других программах. Для этого укажите дескриптор окна в котором должен разместиться ConEmu и команду, которую он должен выполнить. Например:
ConEmu.exe /insidewnd 0x13A40 /cmd powershell.exe
Разное
Win+A или кнопка на тулбаре — заморозить консоль (поставить на паузу).
Щелчок правой кнопкой мышки по крестику в заголовке окна скрывает ConEmu в область уведомлений (Taskbar status area).
Полоса прокрутки по умолчанию скрыта и появляется при наведении мышки в правый край консоли. При работе в Far Manager колесо мышки обычно обрабатывается самим Far (прокрутка панелей, меню, и пр.), но при наведении курсора на полосу прокрутки — колесо прокручивает консоль.
Поиск текста — Apps+F или из меню «Edit» пункт «Find text». Искать умеем по всей консоли, но для этого консоль должна быть заморожена (Freeze console).

Можно показать «настоящую» консоль комбинацией Ctrl+Win+Alt+Space.
Far Manager
Интеграция с Far это тема для отдельной статьи. Важно, чтобы в Far был загружен плагин ConEmu (то есть в списке F11 из панелей был виден пункт «ConEmu»).

Краткий список возможностей.
- Drag&Drop файлов из панелей в другие приложения;
- щелчок правой кнопкой мышки помечает файлы, а длинный щелчок (удерживайте правую кнопку мышки >1 секунды) открывает графическое EMenu;
- панели можно двигать мышкой
- в плагине Unicode CharMap символы отображаются соответствующим шрифтом;
- файлы в панелях можно отображать в режиме Tile и Thumbnail;
- поддержка тачскринов, например прокрутка двумя пальцами, жест zoom, длинный тап по кейбару открывает меню (Alt/Shift/Ctrl/Fn).
Фоновая картинка
Если вам не нравится унылое черное окошко – фон можно заменить на картинку или сплошной цвет. Замена фона выполняется для выбранных индексов цветов – поле «Replace color indexes». По умолчанию в поле стоит «*» – автовыбор, но если, например, нужно заменять фон для темно-зеленого цвета (палитру можно посмотреть на вкладке «Colors») введите «#2» вместо «*». Фоновая картинка указывается в поле «Path» (bmp, jpg, png файлы), но в этом же поле можно указать и сплошной цвет, например «48 10 36» чтобы получить цвет фона терминала в Ubuntu. Если картинка слишком яркая – ее можно притушить слайдером «Darkening».
Еще одна возможность для пользователей Far Manager – установка цвета фона из плагинов Far. На Хабре уже была статья » Визуализация разных дисков в файловом менеджере или Не совсем консольный FAR
«. Описываемый там плагин устарел и не работает в текущих версиях ConEmu, но аналогичный функционал реализован плагином «ConEmu Background». Чтобы включить раскраску панелей откройте в Far Manager список «Plugins configuration» (Alt+Shift+F9 в панелях), выберите плагин «ConEmu Background» и включите флажок «Enable plugin».
Это звучит потрясающе, но почему бы вам просто не улучшить существующую Windows Console?
Основной целью Windows Console является сохранение обратной совместимости с существующими инструментами командной строки, скриптами и т. д. Хотя нам и удалось добавить множество ключевых улучшений в функционал консоли (например, добавить поддержку VT и 24-битного цвета и т. д. см. этот пост в блоге
), мы не можем внести дальнейшие существенные улучшения в UI консоли без “нарушения мира”.
Поэтому пришло время для нового, свежего подхода.
Windows Terminal устанавливается и работает вместе с существующим приложением Windows Console. Если вы непосредственно запускаете Cmd/PowerShell/пр., они начнут подключаться к традиционному экземпляру консоли точно так же, как обычно. Таким образом, обратная совместимость остается неизменной, и в то же время вы можете использовать Windows Terminal, если/когда вы захотите это сделать. Windows Console будет продолжать поставляться в Windows в течение десятилетий для поддержки существующих/устаревших приложений и систем.
Заключение
Казалось бы от терминала нужно не много, но работа над ConEmu далека от завершения и в планах реализация многих возможностей. Например «бесконечный» буфер (сейчас ограничен 9999 строками «реальной» консоли), полноценная поддержка xterm 256 colors, горизонтальная прокрутка, сниппеты, оптимизация и т.д.
И, конечно, документация. Банально не хватает времени чтобы поддерживать актуальность wiki
, некоторые страницы ожидают перевода, а многие возможности описаны только в WhatsNew.
Обновлено
Официальный сайт переехал по адресу http://conemu.github.io
.
Extend foreground colors
За счет потери одного индекса цвета фона в ConEmu можно настроить дополнительно 16 цветов для текста. Например, для приглашения командной строки можно указать ярко-красный цвет фона, выбрать в выпадающем списке его индекс (#12) и настроить палитру цветов с индексами 16.31. После этого текст будет отображен цветами палитры 16.31, а цвет фона (ярко-красный) заменен на окружающий (скорее всего это будет черный).
Подробнее можно почитать здесь
.

