Красивая командная строка для windows

Время на прочтение
18 мин

Количество просмотров 431K

Часто путают терминал и шелл. В тех же *nix есть шеллы (bash, csh, zsh, …) и терминалы (konsole/guake/yaquake/tilda и т.д. и т.п.) Для мира Windows общеизвестный терминал только один – стандартное консольное окошко, которое часто ошибочно называют «cmd.exe». И мало кто знает о существовании множества других эмуляторов терминала. Известных шеллов больше, их целых два: cmd.exe и powershell.exe. И хотя есть как минимум три порта bash (MinGW, CygWin, GIT) многие юниксоиды предпочитают ругать cmd.exe.

Меня не устраивал ни один из найденных альтернативных терминалов (как в 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. От сторонних библиотек не зависит.

Обзор возможностей

Рассказать «про все» в рамках одной статьи невозможно, поэтому здесь описаны только некоторые функции, на мой взгляд наиболее интересные большинству пользователей.

Наглядность. В табах могут отображается не только заголовки консолей, но и дополнительная информация вроде активного процесса, прогресса архивации, 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 можно найти настройки на любой вкус и цвет. Практически любому действию можно назначить комбинацию клавиш, а простейший макро-язык позволяет выполнять нестандартные действия.

Немного истории

В начале был Zoin и его анонс Эмулятор консоли на форуме Far Manager. Не знаю, планировал ли автор развитие эмулятора, но в 2009-м году появилось несколько форков предлагающих разные улучшения: вертикальную прокрутку, табы для редакторов и вьюверов Far, отображение контекстного меню для файлов по правой кнопке и перетаскивание файлов между консольным Far и другими приложениями. Идея мне понравилась и, объединив все «патчи», я стал развивать эмулятор добавляя новые возможности и исправляя баги. На тот момент было несколько альтернатив (самые известные – Console2 из бесплатных и TakeCommand из платных), но ни одна у меня не прижилась. «Пользуюсь фаром 15 лет» поэтому в первую очередь нужна была оболочка для него.

Установка

ConEmu можно скачать с оф.сайта в двух вариантах: инсталлятор и 7z архив. Разницы между ними в общем-то никакой, просто инсталлятор умеет создавать ярлыки и позволяет отключить не нужные части продукта. Рекомендую пробовать последние Alpha-версии, т.к. с момента выхода последнего Stable прошло много времени, исправлено много багов, появилось много новых возможностей.

Для адептов 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»).

Первый запуск

При первом запуске отображается диалог «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).

Настройка

В принципе, ConEmu работает сразу и настройки не требует, но у любого пользователя/админа/программиста есть свои предпочтения и специфика работы.

Полный диалог настроек открывается либо с клавиатуры комбинацией Win+Alt+P либо вызовом из системного меню ConEmu пункта «Settings».

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

Выбор шелла

Итак, скорее всего вам нужно будет настроить свой список шеллов, как запускаемых при старте, так и быстро доступных.

Идем на вкладку «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 и вырезающийся из командной строки при запуске программы. О нем можно писать много и долго, а пока отошлю на сайт проекта.

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

Если отображается панель кнопок (toolbar) то кнопка [+] открывает диалог запуска новой консоли. Здесь можно указать любую программу с параметрами, выбрать строку запуска из истории или выбрать заранее созданную задачу. Здесь можно создать «split», запустив новую консоль на одном экране с текущей. «Run as administrator» запускает новую консоль в режиме администратора. Флажок «New window» запустит новый процесс ConEmu.exe с выбранной командой.

На панели кнопок у кнопки [+] есть «стрелка» для открытия меню. Это же меню можно открыть комбинацией Win+N. Здесь отображаются команды из истории и заранее созданные задачи. Правый щелчок мышкой по пункту с задачей открывает меню второго уровня со списком команд этой задачи – так можно посмотреть ее содержимое или запустить только одну из команд задачи.

Можно создать ярлык и запускать новую консоль в уже запущенной копии 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» что-то вроде:

shell("",@"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe")

Поддерживаются два синтаксиса строк: C-string где используются \r\n\t\a\e\"\\, и Verbatim-string вроде @"app.exe ""C:\My Documents\File.txt""".

Из командной строки шелла, запущенного во вкладке 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).

Пометка, копирование и вставка текста

Настроек на вкладках «Mark & Paste» и «Controls» много. Расскажу об умолчаниях.

Поддерживается два типа пометки текста:

  • Text selection — стандарт для текстовых редакторов;
  • Block selection — прямоугольные блоки, как в обычной консоли.

Варианты для начала пометки в стиле «Text selection»: Shift+СтрелкаВлево, Shift+СтрелкаВправо или удерживая ЛевыйShift начните пометку мышкой (drag с зажатой левой кнопкой мышки).

Варианты для начала пометки в стиле «Block selection»: Shift+СтрелкаВверх, Shift+СтрелкаВниз или удерживая ЛевыйAlt начните пометку мышкой (drag с зажатой левой кнопкой мышки).

Примечание: при работе в Far Manager Shift+Стрелка обрабатываются в Far а не в ConEmu.

Копирование в буфер обмена помеченного блока с клавиатуры: Ctrl+C или Enter. Нажатие Esc отменяет пометку.

При пометке текста мышкой копирование выполняется сразу при отпускании левой кнопки мышки.

Вставка текста из буфера обмена

Ctrl+V вставляет только первую строку из буфера обмена. Почему только первую? Чаще всего в терминале запущен шелл и было бы обидно, если команда начнет выполняться до того как вы проведете ревизию того, что вставилось в консоль.

Shift+Ins и щелчок правой кнопки мышки вставляет все строки из буфера обмена.

Выбор и вставка путей к файлам и папкам

Комбинации Ctrl+Shift+D и Ctrl+Shift+F открывают стандартные Windows-диалоги выбора пути к папке или файлу и вставляют выбранный путь в консоль.

Бонус в командной строке

При щелчке левой кнопкой мышки в командной строке ConEmu пытается переместить курсор в позицию щелчка. А Ctrl+BackSpace удаляет слово слева от курсора.

Гиперссылки и ошибки компиляции

ConEmu умеет открывать гиперссылки в браузере по умолчанию (ShellExecute) а ссылки на ошибки компиляции в редакторе. Удерживая ЛевыйCtrl щелкните левой кнопкой мышки по гиперссылке www... или по файлу с ошибкой test.c(50): error: ....

Шрифт

Вкладка «Main». Шрифт можно выбрать любой: моноширный или пропорциональный, растровый или векторный, с включенным сглаживанием или отключенным (Clear Type, Standard, None). Пропорциональный шрифт в консоли смотрится несколько странно, но если хочется – то можно отключить флажок «Monospace».

Хочется отметить также то, что ConEmu умеет использовать не только шрифты установленный в системе. Просто скопируйте желаемые файлы шрифтов (поддерживаются fon, ttf, otf, и моноширные bdf) в папку ConEmu и перезапустите программу. Новые шрифты появятся в списке доступных на вкладке настройки шрифтов «Main». Не стоит копировать слишком много шрифтов – их обработка может занять значительное время при старте программы. Регистрацию «локальных» шрифтов можно отключить на вкладке «Features» флажком «Auto register fonts».

Для отображения псевдографики (рамки в Far Manager и т.п.) можно настроить отдельный шрифт. В некоторых шрифтах используемых в качестве основного рамки получаются несимпатичными.

Иногда нужно быстро поменять размер шрифта. Это можно сделать не открывая окно настроек — удерживая клавишу Ctrl крутите колесико мышки.

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 рамка которую можно тянуть мышкой.

Панель задач Windows 7

Поддержка списка переходов (Jump List). После создания вашего списка задач на вкладке «Tasks» включите флажок «Add ConEmu tasks to taskbar» и нажмите кнопку «Update Now».

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

Фоновая картинка

Если вам не нравится унылое черное окошко – фон можно заменить на картинку или сплошной цвет. Замена фона выполняется для выбранных индексов цветов – поле «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».

Автообновление

ConEmu умеет обновляться автоматически, если он был установлен инсталлятором или развернут из 7z–архива. Для обновления 7z–архивом требуется установленный архиватор 7zip или WinRar. На владке «Update» можно выбрать параметры обновления: проверять при запуске или ежечасно; показывать диалог с сообщением о новой версии или только нотификацию в TSA; обновляться на последнюю или только на стабильную версию; настройка proxy–сервера; путь для хранения скачанных версий и т.д.

Цветовые палитры

На вкладке «Colors» можно выбрать одну из предопределенных цветовых схем (Solarized, Standard VGA, PowerShell, xterm, и др.) или настроить свою схему цветов. Настроенную схему можно сохранить: введите имя в поле «Schemes» и нажмите кнопку «Save».

Стандартной палитры в 16 цветов не всегда хватает, но в ConEmu есть две возможности расширения цветового пространства.

Extend foreground colors

За счет потери одного индекса цвета фона в ConEmu можно настроить дополнительно 16 цветов для текста. Например, для приглашения командной строки можно указать ярко-красный цвет фона, выбрать в выпадающем списке его индекс (#12) и настроить палитру цветов с индексами 16..31. После этого текст будет отображен цветами палитры 16..31, а цвет фона (ярко-красный) заменен на окружающий (скорее всего это будет черный).
Подробнее можно почитать здесь.

TrueColor

Унылая 16-цветная консольная палитра надоела разработчику плагина Colorer для редактора Far Manager и появился Colorer TrueMod. В результате консольный редактор засиял новыми красками, а информация о цветах стала храниться в SharedMemory в дополнение к собственно консоли. Кроме цветов появилась возможность использовать Bold/Italic/Underline шрифты для участков текста.

В Far 3.0 поддержка TrueColor стала нативной и настройку расширенных атрибутов (24бита на цвет и Bold/Italic/Underline) можно выполнить для любого элемента интерфейса. Кто говорил, что в фаре недостаточно цветов для подсветки групп файлов?

Опция может быть отключена на вкладке «Colors» флажком «TrueMod (24bit color) support». Ее отключение экономит некоторое количество мегабайт памяти.

ANSI X3.64

В *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». Вы можете выбрать любые три клавиши-модификатора.

Статусная строка

По желанию отключается и настраивается. Доступно большое количество колонок вроде имени и PID активного процесса, координаты видимой области и курсора, ИД текущей раскладки клавиатуры, статусы CAPS/NUM/SCROLL, номер активной консоли, коэффициент прозрачности и т.д. По многим колонкам можно щелкать мышкой для их изменения.

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

Default terminal

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

Как это работает: на вкладке «Integration» нужно указать список процессов, в которые будет загружена библиотека ConEmuHk.dll (например «explorer.exe|devenv.exe|totalcmd.exe») и включить флажок «Force ConEmu as default terminal» а также, при желании, «Register on OS startup». В указанных процессах будут перехвачены функции CreateProcessA, CreateProcessW, WinExec для запуска консольного приложения в ConEmu.

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+~ (хоткей по умолчанию для перезапуска таба).

App distinct

Здесь можно изменить некоторые опции в зависимости от процесса в консоли.
Например для PowerShell запущенном в режиме админа задать свою палитру.
Здесь же будет возможность задать свою фоновую картинку (просят давно, но пока не готово).

Keys & Macro

Здесь можно увидеть список всех комбинаций клавиш используемых в программе. Быстрый способ открыть эту вкладку – Win+Alt+K.
Также есть возможность задавать некоторое количество пользовательских действий через GuiMacro. Например назначить на Ctrl+D выход из текущего шелла: print("exit\n").

Far Manager

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

Краткий список возможностей.

  • Drag&Drop файлов из панелей в другие приложения;
  • щелчок правой кнопкой мышки помечает файлы, а длинный щелчок (удерживайте правую кнопку мышки >1 секунды) открывает графическое EMenu;
  • панели можно двигать мышкой
  • в плагине Unicode CharMap символы отображаются соответствующим шрифтом;
  • файлы в панелях можно отображать в режиме Tile и Thumbnail;
  • поддержка тачскринов, например прокрутка двумя пальцами, жест zoom, длинный тап по кейбару открывает меню (Alt/Shift/Ctrl/Fn).

Вкладка Debug

В основном вкладка для отлова багов. Но может быть интересна и пользователям.
Например, при выборе радиокнопки «Shell» ConEmu показывает запускаемые в консоли процессы и загружаемые dll-ки. Почти то же самое можно подсмотреть в ProcessMonitor, но здесь есть бонус — при компиляции проектов VC cl.exe и link.exe запускаются не с ключами а с параметром пакетным-файлом. ConEmu покажет содержимое этого файла.

Разное

Win+A или кнопка на тулбаре — заморозить консоль (поставить на паузу).

Щелчок правой кнопкой мышки по крестику в заголовке окна скрывает ConEmu в область уведомлений (Taskbar status area).

Полоса прокрутки по умолчанию скрыта и появляется при наведении мышки в правый край консоли. При работе в Far Manager колесо мышки обычно обрабатывается самим Far (прокрутка панелей, меню, и пр.), но при наведении курсора на полосу прокрутки — колесо прокручивает консоль.

Поиск текста — Apps+F или из меню «Edit» пункт «Find text». Искать умеем по всей консоли, но для этого консоль должна быть заморожена (Freeze console).

Можно показать «настоящую» консоль комбинацией Ctrl+Win+Alt+Space.

Заключение

Казалось бы от терминала нужно не много, но работа над ConEmu далека от завершения и в планах реализация многих возможностей. Например «бесконечный» буфер (сейчас ограничен 9999 строками «реальной» консоли), полноценная поддержка xterm 256 colors, горизонтальная прокрутка, сниппеты, оптимизация и т.д.
И, конечно, документация. Банально не хватает времени чтобы поддерживать актуальность wiki, некоторые страницы ожидают перевода, а многие возможности описаны только в WhatsNew.

Обновлено

Официальный сайт переехал по адресу http://conemu.github.io.

Cmder is a software package created out of pure frustration over the absence of nice console emulators on
Windows. It is based on amazing software, and spiced up with the Monokai color scheme and a custom prompt
layout, looking sexy from the start.

ConEmu, which is used in cmder.

With help of the best

Think about cmder more as a software package than a separate app. All the magic is happening through
ConEmu. With enhancements from
Clink.

Personally, I hate the absence of padding

Total portability

Carry it with you on a USB stick or in the Cloud, so your settings, aliases and history can go anywhere
you go. You will not see that ugly Windows prompt ever again.

Look at all these neat binaries included.

Git and others

Oooh yes! If you decide to use the
slightly bigger

git-for-windows version, you will have all Unix commands ready in PATH so that you can
git init or
cat instantly on every machine.

Download

Installation

  1. Unzip
  2. (optional) Place your own executable files into the
    bin folder to be injected into your PATH.
  3. Run
    Cmder
    (Cmder.exe)

Keyboard shortcuts

Tab manipulation

  • Ctrl + ` :
    Global Summon from taskbar
  • Win + Alt + p : Preferences (Or right click on title bar)
  • Ctrl + t : New tab dialog (maybe you want to open cmd as admin?)
  • Ctrl + w : Close tab
  • Shift + Alt + number : Fast new tab:

    1. 1. CMD
    2. 2. PowerShell
  • Alt + Enter : Fullscreen

Shell

  • Ctrl + Alt + u : Traverse up in directory structure (lovely feature!)
  • End, Home, Ctrl : Traverse text as usual on Windows
  • Ctrl + r : History search
  • Shift + mouse : Select and copy text from buffer
  • Right click / Ctrl + Shift + v : Paste text

Notes / Docs

Aliases

There is simple support for aliases. They can be created by using the
alias command like this:
alias ls=ls --color $*. They are pretty much just
doskeys in
/config/aliases. One per line. And make sure to handle arguments by putting argument variables
$* somewhere.

Updating + Building

There is not much going on here. But if you want to get most recent updates for Conemu just tick
auto-updating in preferences. If you want to clone the repo and build it yourself, you will
need
PowerShell >=3.0 and 7z. When you are set on that, just run
scripts/build.ps1.

Documentations

Most of the Cmder functionality are documented in the
readme file on GitHub.
We have extented help available in Cmder Wiki, also regarding integration.

If you’re having trouble with anything, please have a look at the GitHub
issues, or create
a new one.
We’ll be happy to help, but you might have a better chance to find
solutions on the pages of the upstream projects. Those are:

  • Console emulator ~
    Conemu
  • Cmd.exe enhancements ~
    clink
  • Unix tools on windows ~
    git for windows

Cmder

Join the chat at https://gitter.im/cmderdev/cmder Build Status Build Status

Cmder is a software package created out of pure frustration over absence of usable console emulator on Windows. It is based on ConEmu with major config overhaul, comes with a Monokai color scheme, amazing clink (further enhanced by clink-completions) and a custom prompt layout.

Cmder Screenshot

Why use it

The main advantage of Cmder is portability. It is designed to be totally self-contained with no external dependencies, which makes it great for USB Sticks or cloud storage. So you can carry your console, aliases and binaries (like wget, curl and git) with you anywhere.

The Cmder’s user interface is also designed to be more eye pleasing, and you can compare the main differences between Cmder and ConEmu here.

Installation

Single User Portable Config

  1. Download the latest release
  2. Extract the archive. Note: This path should not be C:\Program Files or anywhere else that would require Administrator access for modifying configuration files
  3. (optional) Place your own executable files into the %cmder_root%\bin folder to be injected into your PATH.
  4. Run Cmder.exe

Shared Cmder install with Non-Portable Individual User Config

  1. Download the latest release
  2. Extract the archive to a shared location.
  3. (optional) Place your own executable files and custom app folders into the %cmder_root%\bin. See: bin/README.md
    • This folder to be injected into your PATH by default.
    • See /max_depth [1-5] in ‘Command Line Arguments for init.bat‘ table to add subdirectories recursively.
  4. (optional) Place your own custom app folders into the %cmder_root%\opt. See: opt/README.md
    • This folder will NOT be injected into your PATH so you have total control of what gets added.
  5. Run Cmder.exe with /C command line argument. Example: cmder.exe /C %userprofile%\cmder_config
    • This will create the following directory structure if it is missing.

      c:\users\[username]\cmder_config
      ├───bin
      ├───config
      │   └───profile.d
      └───opt
      
  • (optional) Place your own executable files and custom app folders into %userprofile%\cmder_config\bin.
    • This folder to be injected into your PATH by default.
    • See /max_depth [1-5] in ‘Command Line Arguments for init.bat‘ table to add subdirectories recursively.
  • (optional) Place your own custom app folders into the %user_profile%\cmder_config\opt.
    • This folder will NOT be injected into your PATH so you have total control of what gets added.
  • Both the shared install and the individual user config locations can contain a full set of init and profile.d scripts enabling shared config with user overrides. See below.

Cmder.exe Command Line Arguments

Argument Description
/C [user_root_path] Individual user Cmder root folder. Example: %userprofile%\cmder_config
/M Use conemu-%computername%.xml for ConEmu settings storage instead of user_conemu.xml
/REGISTER [ALL, USER] Register a Windows Shell Menu shortcut.
/UNREGISTER [ALL, USER] Un-register a Windows Shell Menu shortcut.
/SINGLE Start Cmder in single mode.
/START [start_path] Folder path to start in.
/TASK [task_name] Task to start after launch.
/X [ConEmu extras pars] Forwards parameters to ConEmu

Context Menu Integration

So you’ve experimented with Cmder a little and want to give it a shot in a more permanent home;

Shortcut to open Cmder in a chosen folder

  1. Open a terminal as an Administrator
  2. Navigate to the directory you have placed Cmder
  3. Execute .\cmder.exe /REGISTER ALL
    If you get an «Access Denied» message, make sure you are executing the command in an Administrator prompt.

In a file explorer window right click in or on a directory to see «Cmder Here» in the context menu.

Keyboard shortcuts

Tab manipulation

  • Ctrl + T : New tab dialog (maybe you want to open cmd as admin?)
  • Ctrl + W : Close tab
  • Ctrl + D : Close tab (if pressed on empty command)
  • Shift + Alt + #Number : Fast new tab: 1 — CMD, 2 — PowerShell
  • Ctrl + Tab : Switch to next tab
  • Ctrl + Shift + Tab : Switch to previous tab
  • Ctrl + #Number : Switch to tab #Number
  • Alt + Enter: Fullscreen

Shell

  • Ctrl + Alt + U : Traverse up in directory structure (lovely feature!)
  • End, Home, Ctrl : Traversing text with as usual on Windows
  • Ctrl + R : History search
  • Shift + Mouse : Select and copy text from buffer

(Some shortcuts are not yet documented, though they exist — please document them here)

Features

Access to multiple shells in one window using tabs

You can open multiple tabs each containing one of the following shells:

Task Shell Description
Cmder cmd.exe Windows cmd.exe shell enhanced with Git, Git aware prompt, Clink (GNU Readline), and Aliases.
Cmder as Admin cmd.exe Administrative Windows cmd.exe Cmder shell.
PowerShell powershell.exe Windows PowerShell enhanced with Git and Git aware prompt .
PowerShell as Admin powershell.exe Administrative Windows powershell.exe Cmder shell.
Bash bash.exe Unix/Linux like bash shell running on Windows.
Bash as Admin bash.exe Administrative Unix/Linux like bash shell running on Windows.
Mintty bash.exe Unix/Linux like bash shell running on Windows. See below for Mintty configuration differences
Mintty as Admin bash.exe Administrative Unix/Linux like bash shell running on Windows. See below for Mintty configuration differences

Cmder, PowerShell, and Bash tabs all run on top of the Windows Console API and work as you might expect in Cmder with access to use ConEmu’s color schemes, key bindings and other settings defined in the ConEmu Settings dialog.

Note: Only the full edition of Cmder comes with a pre-installed bash, using a vendored git-for-windows installation. The pre-configured Bash tabs may not work on Cmder mini edition without additional configuration.

You may however, choose to use an external installation of bash, such as Microsoft’s Subsystem for Linux (called WSL) or the Cygwin project which provides POSIX support on windows.

Note: Mintty tabs use a program called ‘mintty’ as the terminal emulator that is not based on the Windows Console API, rather it’s rendered graphically by ConEmu. Mintty differs from the other tabs in that it supports xterm/xterm-256color TERM types, and does not work with ConEmu settings like color schemes and key bindings. As such, some differences in functionality are to be expected, such as Cmder not being able to apply a system-wide configuration to it.

As a result mintty specific config is done via the [%USERPROFILE%|$HOME]/.minttyrc file. You may read more about Mintty and its config file here.

An example of setting Cmder portable terminal colors for mintty:

From a bash/mintty shell:

cd $CMDER_ROOT/vendor
git clone https://github.com/karlin/mintty-colors-solarized.git
cd mintty-colors-solarized/
echo source \$CMDER_ROOT/vendor/mintty-colors-solarized/mintty-solarized-dark.sh>>$CMDER_ROOT/config/user_profile.sh

You may find some Monokai color schemes for mintty to match Cmder here.

Changing Cmder Default cmd.exe Prompt Config File

The default Cmder shell cmd::Cmder prompt is customized using Clink and is configured by editing a config file that exists in one of two locations:

  • Single User Portable Config %CMDER_ROOT%\config\cmder_prompt_config.lua
  • Shared Cmder install with Non-Portable Individual User Config %CMDER_USER_CONFIG%\cmder_prompt_config.lua

If your Cmder setup does not have this file create it from %CMDER_ROOT%\vendor\cmder_prompt_config.lua.default

Customizations include:

  • Colors.
  • Single/Multi-line.
  • Full path/Folder only.
  • [user]@[host] to the beginning of the prompt.
  • ~ for home directory.
  • λ symbol

Documentation is in the file for each setting.

Changing Cmder Default cmd.exe Shell Startup Behaviour Using Task Arguments

  1. Press Win + Alt + T
  2. Click either:
  • 1. {cmd::Cmder as Admin}
  • 2. {cmd::Cmder}
  1. Add command line arguments where specified below:

Note: Pay attention to the quotes!

cmd /s /k ""%ConEmuDir%\..\init.bat" [ADD ARGS HERE]"
Command Line Arguments for init.bat
Argument Description Default
/c [user cmder root] Enables user bin and config folders for ‘Cmder as admin’ sessions due to non-shared environment. not set
/d Enables debug output. not set
/f Enables Cmder Fast Init Mode. This disables some features, see pull request #1492 for more details. not set
/t Enables Cmder Timed Init Mode. This displays the time taken run init scripts not set
/git_install_root [file path] User specified Git installation root path. %CMDER_ROOT%\vendor\Git-for-Windows
/home [home folder] User specified folder path to set %HOME% environment variable. %userprofile%
/max_depth [1-5] Define max recurse depth when adding to the path for %cmder_root%\bin and %cmder_user_bin% 1
/nix_tools [0-2] Define how *nix tools are added to the path. Prefer Windows Tools: 1, Prefer *nix Tools: 2, No /usr/bin in %PATH%: 0 1
/svn_ssh [path to ssh.exe] Define %SVN_SSH% so we can use git svn with ssh svn repositories. %GIT_INSTALL_ROOT%\bin\ssh.exe
/user_aliases [file path] File path pointing to user aliases. %CMDER_ROOT%\config\user_aliases.cmd
/v Enables verbose output. not set
(custom arguments) User defined arguments processed by cexec. Type cexec /? for more usage. not set

Cmder Shell User Config

Single user portable configuration is possible using the Cmder specific shell config files. Edit the below files to add your own configuration:

Shell Cmder Portable User Config
Cmder %CMDER_ROOT%\config\user_profile.cmd
PowerShell $ENV:CMDER_ROOT\config\user_profile.ps1
Bash/Mintty $CMDER_ROOT/config/user_profile.sh

Note: Bash and Mintty sessions will also source the $HOME/.bashrc file if it exists after it sources $CMDER_ROOT/config/user_profile.sh.

You can write *.cmd|*.bat, *.ps1, and *.sh scripts and just drop them in the %CMDER_ROOT%\config\profile.d folder to add startup config to Cmder.

Shell Cmder Profile.d Scripts
Cmder %CMDER_ROOT%\config\profile.d\*.bat and *.cmd
PowerShell $ENV:CMDER_ROOT\config\profile.d\*.ps1
Bash/Mintty $CMDER_ROOT/config/profile.d/*.sh

Git Status Opt-Out

To disable Cmder prompt git status globally add the following to ~/.gitconfig or locally for a single repo [repo]/.git/config and start a new session.

Note: This configuration is not portable

[cmder]
  status = false      # Opt out of Git status for 'ALL' Cmder supported shells.
  cmdstatus = false   # Opt out of Git status for 'Cmd.exe' shells.
  psstatus = false    # Opt out of Git status for 'Powershell.exe and 'Pwsh.exe' shells.
  shstatus = false    # Opt out of Git status for 'bash.exe' shells.

Aliases

Cmder(Cmd.exe) Aliases

You can define simple aliases for cmd.exe sessions with a command like alias name=command. Cmd.exe aliases support optional parameters through the $1-9 or the $* special characters so the alias vi=vim.exe $* typed as vi [filename] will open [filename] in vim.exe.

Cmd.exe aliases can also be more complex. See: DOSKEY.EXE documentation for additional details on complex aliases/macros for cmd.exe

Aliases defined using the alias.bat command will automatically be saved in the %CMDER_ROOT%\config\user_aliases.cmd file

To make an alias and/or any other profile settings permanent add it to one of the following:

Note: These are loaded in this order by $CMDER_ROOT/vendor/init.bat. Anything stored in %CMDER_ROOT% will be a portable setting and will follow Cmder to another machine.

  • %CMDER_ROOT%\config\profile.d\*.cmd and \*.bat
  • %CMDER_ROOT%\config\user_aliases.cmd
  • %CMDER_ROOT%\config\user_profile.cmd

Bash.exe|Mintty.exe Aliases

Bash shells support simple and complex aliases with optional parameters natively so they work a little different. Typing alias name=command will create an alias only for the current running session.

To make an alias and/or any other profile settings permanent add it to one of the following:

Note: These are loaded in this order by $CMDER_ROOT/vendor/git-for-windows/etc/profile.d/cmder.sh. Anything stored in $CMDER_ROOT will be a portable setting and will follow Cmder to another machine.

  • $CMDER_ROOT/config/profile.d/*.sh
  • $CMDER_ROOT/config/user_profile.sh
  • $HOME/.bashrc

If you add bash aliases to $CMDER_ROOT/config/user_profile.sh they will be portable and follow your Cmder folder if you copy it to another machine. $HOME/.bashrc defined aliases are not portable.

PowerShell.exe Aliases

PowerShell has native simple alias support, for example [new-alias | set-alias] alias command, so complex aliases with optional parameters are not supported in PowerShell sessions. Type get-help [new-alias|set-alias] -full for help on PowerShell aliases.

To make an alias and/or any other profile settings permanent add it to one of the following:

Note: These are loaded in this order by $ENV:CMDER_ROOT\vendor\user_profile.ps1. Anything stored in $ENV:CMDER_ROOT will be a portable setting and will follow Cmder to another machine.

  • $ENV:CMDER_ROOT\config\profile.d\*.ps1
  • $ENV:CMDER_ROOT\config\user_profile.ps1

SSH Agent

To start the vendored SSH agent simply call start-ssh-agent, which is in the vendor/git-for-windows/cmd folder.

If you want to run SSH agent on startup, include the line @call "%GIT_INSTALL_ROOT%/cmd/start-ssh-agent.cmd" in %CMDER_ROOT%/config/user_profile.cmd (usually just uncomment it).

Vendored Git

Cmder is by default shipped with a vendored Git installation. On each instance of launching Cmder, an attempt is made to locate any other user provided Git binaries. Upon finding a git.exe binary, Cmder further compares its version against the vendored one by executing it. The vendored git.exe binary is only used when it is more recent than the user-installed one.

You may use your favorite version of Git by including its path in the %PATH% environment variable. Moreover, the Mini edition of Cmder (found on the downloads page) excludes any vendored Git binaries.

Using external Cygwin/Babun, MSys2, WSL, or Git for Windows SDK with Cmder.

You may run bash (the default shell used on Linux, macOS and GNU/Hurd) externally on Cmder, using the following instructions:

  1. Setup a new task by pressing Win +Alt + T.
  2. Click the + button to add a task.
  3. Name the new task in the top text box.
  4. Provide task parameters, this is optional.
  5. Add cmd /c "[path_to_external_env]\bin\bash --login -i" -new_console to the Commands text box.

Recommended Optional Steps:

Copy the vendor/cmder_exinit file to the Cygwin/Babun, MSys2, or Git for Windows SDK environments /etc/profile.d/ folder to use portable settings in the $CMDER_ROOT/config folder.

Note: MinGW could work if the init scripts include profile.d but this has not been tested.

The destination file extension depends on the shell you use in that environment. For example:

  • bash — Copy to /etc/profile.d/cmder_exinit.sh
  • zsh — Copy to /etc/profile.d/cmder_exinit.zsh

Uncomment and edit the line below in the script to use Cmder config even when launched from outside Cmder.

# CMDER_ROOT=${USERPROFILE}/cmder  # This is not required if launched from Cmder.

Customizing user sessions using init.bat custom arguments.

You can pass custom arguments to init.bat and use cexec.cmd in your user_profile.cmd to evaluate these
arguments then execute commands based on a particular flag being detected or not.

init.bat creates two shortcuts for using cexec.cmd in your profile scripts.

%ccall% — Evaluates flags, runs commands if found, and returns to the calling script and continues.

ccall=call C:\Users\user\cmderdev\vendor\bin\cexec.cmd

Example: %ccall% /startnotepad start notepad.exe

%cexec% — Evaluates flags, runs commands if found, and does not return to the calling script.

cexec=C:\Users\user\cmderdev\vendor\bin\cexec.cmd

Example: %cexec% /startnotepad start notepad.exe

It is useful when you have multiple tasks to execute cmder and need it to initialize
the session differently depending on the task chosen.

To conditionally start notepad.exe when you start a specific cmder task:

  • Press win+alt+t

  • Click + to add a new task.

  • Add the below to the Commands block:

    cmd.exe /k ""%ConEmuDir%\..\init.bat" /startnotepad"
    
  • Add the below to your %cmder_root%\config\user_profile.cmd

    %ccall% "/startNotepad" "start" "notepad.exe"`
    

To see detailed usage of cexec, type cexec /? in Cmder.

Integrating Cmder with Windows Terminal, VS Code, and your favorite IDEs

Cmder by default comes with a vendored ConEmu installation as the underlying terminal emulator, as stated here.

However, Cmder can in fact run in a variety of other terminal emulators, and even integrated IDEs. Assuming you have the latest version of Cmder, follow the following instructions to get Cmder working with your own terminal emulator.

For instructions on how to integrate Cmder with your IDE, please read our Wiki section.

Upgrading

The process of upgrading Cmder depends on the version/build you are currently running.

If you have a [cmder_root]/config/user[-|_]conemu.xml, you are running a newer version of Cmder, follow the below process:

  1. Exit all Cmder sessions and relaunch [cmder_root]/cmder.exe, this backs up your existing [cmder_root]/vendor/conemu-maximus5/conemu.xml to [cmder_root]/config/user[-|_]conemu.xml.

    • The [cmder_root]/config/user[-|_]conemu.xml contains any custom settings you have made using the ‘Setup Tasks’ settings dialog.
  2. Exit all Cmder sessions and backup any files you have manually edited under [cmder_root]/vendor.

    • Editing files under [cmder_root]/vendor is not recommended since you will need to re-apply these changes after any upgrade. All user customizations should go in [cmder_root]/config folder.
  3. Delete the [cmder_root]/vendor folder.

  4. Extract the new cmder.zip or cmder_mini.zip into [cmder_root]/ overwriting all files when prompted.

If you do not have a [cmder_root]/config/user[-|_]conemu.xml, you are running an older version of cmder, follow the below process:

  1. Exit all Cmder sessions and backup [cmder_root]/vendor/conemu-maximus5/conemu.xml to [cmder_root]/config/user[-|_]conemu.xml.

  2. Backup any files you have manually edited under [cmder_root]/vendor.

    • Editing files under [cmder_root]/vendor is not recommended since you will need to re-apply these changes after any upgrade. All user customizations should go in [cmder_root]/config folder.
  3. Delete the [cmder_root]/vendor folder.

  4. Extract the new cmder.zip or cmder_mini.zip into [cmder_root]/ overwriting all files when prompted.

Current development builds

You can download builds of the current development branch by going to AppVeyor via the following link:

AppVeyor

The latest download builds by GitHub Actions can be downloaded from the link below:

Build Status

License

All software included is bundled with own license

The MIT License (MIT)

Copyright (c) 2016 Samuel Vasko

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the «Software»), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED «AS IS», WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

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

Предлагаем вашему вниманию 12 альтернатив штатной командной строке и PowerShell Windows 8.1 и 10.

ColorConsole

Альтернативная командная строка с прицелом на использование цветовой гаммы, копирования и экспорта данных. Бесплатна, поддерживает русский язык интерфейса, есть портативная версия, имеет в верхней части окна текстовое меню. Дополнительные возможности приложения включают:

  • Сохранение содержимого консоли в файлы формата HTML, RTF и TХT.
  • Смена цветовой темы оформления.
  • Копирование и вставка обычными средствами Windows.
  • Форматирование шрифта, использование стилей.
  • Интеграция к контекстное меню Проводника.
  • Создание списка избранных команд.
  • Быстрый переход в каталоги из меню разделов.
  • Поддержка создание новых вкладок.
  • Поиск и замена текстового содержимого.

ColorConsole

ColorConsole

ColorConsole

Cmder

Распространяясь в двух портативных редакциях — Mini и Full, эта альтернатива командой строки на базе ConEmu и расширениями Clink делает упор главным образом на функциональность, более всего близкую к функциональности современных версий PowerShell. Mini-версия Cmder внешне мало чем отличается от стандартной консоли, но имеет несоизмеримо больше настроек.

Отметим лишь наиболее значимые функции этого инструмента:

  • Поддержка работы с вкладками.
  • Изменение цветовой схемы, настроек шрифтов, прозрачности, полноэкранный режим по умолчанию.
  • Сворачивание в трей.
  • Создание и использование алиасов.
  • Поддержка Unix-команд в полной версии.
  • Переключение в командную среду PowerShell.
  • Создание скриншотов окна консоли и дампов процессов.
  • Создание списка избранных команд и автозавершение команд при вводе.
  • Поддержка «горячих» клавишей и множество разных настроек.
  • Поддержка полнотекстового поиска с подсветкой.

Cmder

Cmder

Cmder

Cmder

Cmder

Настроек и опций в Cmder так много, что даже бывалому пользователю, не понаслышке знакомому с командной строкой, придется повозиться не один час, чтобы изучить все возможности инструмента. Cmder бесплатна, но у нее есть один существенный недостаток — ограниченная поддержка Windows 10.

ConsoleZ

Портативный аналог командной строки с упором на улучшенный визуальный рендеринг, наличие дополнительных меню и настроек.

Из особенностей ConsoleZ можно выделить:

  • Полноэкранный режим и поддержка вкладок.
  • Разделение окна консоли по вертикали или горизонтали.
  • Поддержка прозрачности и эффекта Aero Glass.
  • Включение функции учета регистра и полнотекстовый поиск.

ConsoleZ

ConsoleZ

Заявлена поддержка ConsoleZ Windows 8.1, но программа работает и в Windows 10 с некоторыми ограничениями.

ConEmu

Один из лучших эмуляторов командной строки с поддержкой вкладок и переключения в «режим» PowerShell. Обладая минималистичным интерфейсом, отличается гибкостью настроек, широким набором функций и простотой использования.

Традиционно отмечаем преимущества программы.

  • Поддержка вкладок.
  • Быстрый запуск избранных приложений.
  • Выделение и вставка текста с помощью мыши и клавиатуры, а также перетаскиванием.
  • Поддержка PowerShell и Bash, клиента PuTTY и т. п.
  • Вертикальная и горизонтальная прокрутка, полнотекстовый поиск.
  • Создание дампов процессов и скриншотов окна консоли.
  • Сохранение и просмотр журнала отладки.
  • Поддержка цветовых схем и прозрачности, изменение размера окна и шрифтов.
  • Поддержка импорта настроек через файл XML.

ConEmu

ConEmu

ConEmu

ConEmu

Из особенностей ConEmu следует отметить также, что по умолчанию программа всегда запускается с правами администратора. В программе можно выбрать русский язык, но часть элементов меню при этом так и останется на английском, что является ее основным недостатком.

Take Command и TCC

Take Command — полноценная замена штатному интерпретатору командной строки от разработчиков JP Software с множеством дополнительных функций и поддержкой более 200 команд, отсутствующих в стандартной командной строке. В верхней части окна Take Command расположена лента наподобие той, которая имеется в приложениях Microsoft Office и Проводнике Windows 10.

Вот главные особенности приложения:

  • Интеграция с Проводником Windows с поддержкой перетаскивания элементов в консоль.
  • Наличие настраиваемой панели инструментов.
  • Поддержка вкладок, автозавершение команд и имен каталогов.
  • Добавление более 200 дополнительных команд, наличие пакетного отладчика редактора скриптов.
  • Подсветка синтаксиса, вертикальная и горизонтальная прокрутка окна.
  • Множество настроек, обеспечивающих наилучшее визуальное восприятие, изменение уровня прозрачности, закрепление поверх других окон.
  • Запись и воспроизведение макросов, просмотр текстовых и двоичных файлов.
  • Работа с файлами в сети по FTP, TFTP и HTTP.
  • Поддержка сценариев PowerShell, Lua, Perl, REXX, Python, Tcl/tk и Active Sсripting.
  • Наблюдение за загрузкой ЦП и ОЗУ в строке состояния и многое другое.

Take Command и TCC

Take Command и TCC

В отличие от Take Command, созданный тем же разработчиков, «заменитель» командной строки TCC внешне ничем от нее не отличается, главным ее преимуществом является поддержка множества дополнительных команд для работы со скриптами. Оба приложения платные и имеют 30-дневный пробный период ознакомления.

Take Command и TCC

PowerCmd

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

Программой также поддерживается:

  • Полноэкранный режим, копирование и вставка текста из консольной области.
  • Изменение цветовых настроек.
  • Сохранение и восстановление предыдущих сессий.
  • Предпросмотр содержимого каталогов при вводе в консоль первого символа.
  • Полнотекстовый поиск и интеграция в контекстное меню каталогов.
  • Создание закладок и быстрый вызов команд из истории действий.

PowerCmd

Приложение PowerCmd не развивается с 2011 года, но пока остается совместимым с популярными версиями Windows.

Console2

Устаревшая, но всё еще исполняющая основное предназначение альтернатива командной строке Windows. Почти ничем не отличается от командной строки Windows 10, если не брать в расчет возможность создания отдельных вкладок, поддержки скроллинга и индивидуальных настроек, некоторые из которых в Windows 10 более не работают. Портативна, в настройках можно указать свой шелл (командную оболочку), который станет запускаться по умолчанию.

Console2

Console2

Hyper

От рассмотренных нами выше аналогов командной строки терминал Hyper отличается не столько функциональностью, сколько настраиваемым дизайном и расширяемостью. Приложение основано на базе Electron с использованием языков HTML, CSS и JS, настройки хранит в конфигурационном файле, который нужно редактировать вручную.

Особенности терминала:

  • Поддержка плагинов и тем оформления.
  • Использование вкладок, разделение окна по вертикали и горизонтали.
  • Полноэкранный режим работы и масштабирование текста.
  • Копирование и вставка с помощью мыши.
  • Поддержка команд PowerShell.

Hyper

Hyper

Для работы с некоторыми консольными утилитами Hyper нужно запускать с правами администратора. Так, если вы откроете терминал с правами обычного пользователя и вызовите утилиту diskpart, она запустится в классической командной строке.

Terminus

Еще один претендующий на оригинальность терминал для Windows, Linux и Mac OS с поддержкой вкладок, подключения к серверу по SSH, расширяемостью и множеством настроек.

Выделим главные особенности инструмента:

  • Поддержка синтаксиса PowerShell, bash, wls, cmdir, clink и Cygwin.
  • Включение и отключение расширений.
  • Применение цветовых тем, изменение уровня прозрачности окна.
  • Использование и настройка «горячих» клавиш.
  • Подключение по SSH.
  • Копирование и вставка текста.
  • Открытие нескольких вкладок и восстановление закрытых вкладок.
  • Интеграция в контекстное меню Проводника.

Terminus

Как и Hyper, Terminus для работы с штатными консольными утилитами требует запуска от имени администратора.

Clink

Один из самых простейших апгрейдов классической командной строки, ничем внешне от нее не отличающихся. Clink скорее следует рассматривать как расширение командной строки, а не её замену, хотя утилита умеет делать всё то же самое, что и штатный интерпретатор. Ключевым отличием Clink явятся поддержка обработки строк bash, библиотеки GNU Readline и поддержка Lua API.

Прочие особенности инструмента:

  • Автозавершение строк и вывод доступных команд нажатием Tab.
  • Вставка текстового содержимого буфера обмена.
  • Сохранение истории предыдущих сессий и поиск по истории.
  • Поддержка функции отмены (Ctrl-_ или Ctrl-X, Ctrl-U) и прочих дополнительных «горячих клавиш, которых нет в CMD.
  • Поддержка Git, Mercurial, SVN, Go и P4.
  • Автозавершение по сценариям Lua.

Clink

Fluent Terminal

Эмулятор командной строки, отличающийся не только расширенным функционалом и настраиваемым интерфейсом, но и самой платформой, на которой он был разработан. Fluent Terminal является универсальным приложением, доступным для установки как из Windows Store, так и из автономного файла.

Отметим ключевые особенности терминала:

  • Поддержка PowerShell (по умолчанию), CMD, WLS и других командных оболочек, путь к которым задается в настройках приложения.
  • Поддержка нескольких вкладок, изменение их цвета и заголовка.
  • Полнотекстовый поиск.
  • Полнооконный режим и вызов дополнительных независимых окон.
  • Удаленное подключение по SSH и Mosh.
  • Быстрый запуск команд (встроенный аналог окошка Win + R в Windows).
  • Копирование и вставка с помощью мыши.
  • Множество настроек, позволяющих изменять внешний вид терминала.

Fluent Terminal

Fluent Terminal

Fluent Terminal

Fluent Terminal

Cygwin

И напоследок хотелось бы сказать пару слов о Cygwin — замечательном во многих отношениях инструменте, объединившим в себе возможности командных интерпретаторов Windows и Linux. Cygwin — это гораздо нечто большее, чем альтернатива командной строке, Cygwin — это целый пакет UNIX-утилит, портированных на Windows. Здесь мы не станем приводить список возможностей инструмента, он огромен, причем при установке программы пользователь сам может выбрать, какие компоненты ему нужны.

Cygwin

Cygwin

Cygwin

Cygwin в одинаковой мере поддерживает синтаксис Linux-  и Windows-интерпретаторов, подключение по SSH, работает с языками программирования C и C++, Perl и Python, Fortran и Gambas, Ruby, CLISP и еще рядом других языков. Внешне терминал мало чем отличается от обычной командной строки, впрочем, отвечающих за настройку внешнего вида опций в нём не в пример больше. «Недостатком» Cygwin является его относительная сложность, поскольку создавался инструмент явно не для начинающих пользователей.

Подводя итоги

Рынок альтернативного программного обеспечения не испытывает недостатка в аналогах штатным инструментам Windows, порою превосходя их как функционалом, так и удобством использования. На просторах интернета мы нашли еще дюжину подобных «заменителей», но большая часть из них безнадёжно устарела, а меньшая оказалась настолько специфична, что вряд ли заинтересует рядовых пользователей, для которых будет достаточно и Cygwin.

Ссылки на приложения: yadi.sk/d/t3LNBGjoUEmOOw

Загрузка…



Поставить оценку
Средний рейтинг 4.0, всего оценок — 10

  • Скачать программу
  • Описание и функции
  • Скриншоты интерфейса
  • Комментарии пользователей
Название→ ConEmu
Версия→ 22.12.18
Лицензия→ Бесплатно
Поддержка→ Windows 10, 8, 7, Vista, XP
Размер файла→ 7.6 Мб
Разработчик→ Maximus5
Обновлено→ 30 января 2023

ConEmu — программа, которая является продвинутым аналогом стандартной консоли Windows.

Скачать для Windows

Скачайте последнюю версию ConEmu 22.12.18 по прямой ссылке. Программа совместима с операционными системами Windows 10, 8, 7, Vista, XP разрядностью 32/64-bit, размер установочного файла — 7.6 Мб. Данный программный продукт разработан Maximus5 и распространяется бесплатно. Также вы можете скачать программу с официального сайта.

Описание программы

Командная строка в Windows — необходимый инструмент для опытных пользователей. Между тем стандартное решение не радует обилием функций и привлекательным оформлением. Начиная с Windows 8, консоль стала меняться в лучшую сторону, но не настолько, как того бы хотелось.

В ConEmu есть режим вкладок, а это значит, что одновременно в одном окне можно запускать насколько консолей. Все настройки программы легко экспортировать в XML, благодаря чему ею удобно пользоваться на нескольких ПК. Манипуляции можно производить не только с клавиатурой, но и с мышью. ConEmu встраивается в контекстное меню. Обилие тонких настроек позволяет настроить консоль под свои потребности.

В ConEmu можно подобрать цвета для всех элементов, в качестве фона удобно использовать любое изображение, хотя продвинутые пользователи в этом вряд ли нуждаются. Программа может работать в оконном и полноэкранном режиме.

Преимущества и недостатки

  • Работа с вкладками
  • Поддержка кириллицы
  • Полупрозрачный режим
  • Вкладки могут открываться в отдельных окнах
  • Обилие ненужных функций

Скриншоты интерфейса

Комментарии пользователей

  • Копировать с заменой windows 10
  • Красивая windows 10 скачать торрент
  • Корявый шрифт в windows 10
  • Копировать dvd в windows 10
  • Кот феликс на рабочий стол windows 10