Это скалы! Как игрок, я люблю функцию Quake. Однако консоль заблокирована в верхней части экрана (даже если опция заблокирована в верхней части экрана отключена). Спасибо
Ced
как вы запускаете cmd с вкладками?
Майки
@ Микки Что? Сначала прочитайте ответ.
Максимус
35
Ни в одном из ответов на этой странице не упоминается важный аспект новой поддержки ANSI Terminal Control, которая была добавлена на хост консоли Windows 10 в сборке 16257 (и более поздних версиях). А именно, он не включен по умолчанию. Если указанное программное обеспечение вы используете не позволяет обрабатывать ANSI, вызвав SetConsoleMode API с ENABLE_VIRTUAL_TERMINAL_PROCESSING (0x0400)флагом, вы не будете видеть цвета или получить ANSI обработки для этого приложения.
При записи с помощью WriteFile или WriteConsole символы анализируются для VT100 и аналогичных последовательностей управляющих символов, которые управляют движением курсора, режимом цвета / шрифта и другими операциями, которые также могут выполняться через существующие API-интерфейсы консоли. Для получения дополнительной информации см. Последовательности виртуального терминала консоли.
Я предполагаю , что причину примеры , приведенные на этой странице работе является то , что, по- видимому, echoкоманда (или , возможно, пакетной обработкой части CMD.EXEили conhost) позволяет обрабатывать ANSI путем вызова API только что упомянул. Но многие другие инструменты или исполняемые файлы, которые пишут stdinили stdoutмогут не делать этого, в этом случае вы не увидите цвет для этих процессов.
К счастью, глобальное значение по умолчанию может быть изменено с opt-in на opt-out . Раздел реестра at HKEY_CURRENT_USER\Console\VirtualTerminalLevelзадает глобальное поведение по умолчанию для обработки escape-последовательностей ANSI. Создайте DWORDключ (если необходимо) и установите его значение равным 1глобальному включению (или 0отключению`) обработки ANSI по умолчанию.
Обратите внимание, что этот параметр реестра управляет значением по умолчанию , что означает, что он влияет только на консольные приложения, которые явно не манипулируют консольным режимом путем вызова SetConsoleMode(...). Из этого следует, что, хотя значение реестра может помочь включить ANSI для приложений, не обращающих внимания на режим консоли , оно не повлияет на любое приложение, ориентированное на режим консоли, которое (по некоторым причинам) может явно отключить ANSI.
Поведение следующих последовательностей основано на VT100 и производных технологиях эмулятора терминала, наиболее конкретно эмулятор терминала xterm. Более подробную информацию о терминальных последовательностях можно найти по адресу http://vt100.net и по адресу http://invisible-island.net/xterm/ctlseqs/ctlseqs.html .
Вы также можете изменить цвета по умолчанию с помощью Colortool . Новые установки Windows 10 получат слегка измененные цвета, которые легче читать (особенно синий на черном), но обновления сохранят старые, трудно читаемые цвета.
10
Есть ли консольный эмулятор для Windows, который интерпретирует раскраску ANSI?
Windows до 10 - нет встроенной поддержки цветов ANSI на консоли
Для версии ниже 10 консоль Windows не поддерживает раскраску по умолчанию. Вы можете установить Cmder , ConEmu , ANSICON или Mintty (используется по умолчанию в GitBash и Cygwin), чтобы добавить поддержку окраски в командную консоль Windows.
Windows 10 - цвета командной строки
Начиная с Windows 10, консоль Windows поддерживает ANSI Escape-последовательности и некоторые цвета по умолчанию.
Я не уверен, в какой именно версии Win10, но она упоминается здесь: github.com/symfony/symfony/issues/19520 На ноутбуке моей компании - Ver 1511 (сборка ОС 10586.753) - мне это не нужно. На моем домашнем ПК мне пришлось использовать ansicon, потому что цвета не были включены по умолчанию.
geff_chang
4
Они только что ввели флаг, который контролирует цветной вывод и по умолчанию имеет значение false. См. Wpdev.uservoice.com/forums/… ) --- Symfony использует PHP.exe в Windows, где флаг отключен, поэтому им пришлось ждать патча, который появился здесь: github.com/php/php- src / pull / 2103 . Ситуация разрешилась. --- Для cmd.exe флаг верен всегда. Вот почему у вас есть поддержка цвета на консоли.
Дженс А. Кох,
1
эти коды будут работать в сценарии оболочки в Linux тоже? или это сделано по-другому?
Ни в одном из ответов на этой странице не упоминается важный аспект новой поддержки ANSI Terminal Control, которая была добавлена на хост консоли Windows 10 в сборке 16257 (и более поздних версиях). А именно, он не включен по умолчанию. Если указанное программное обеспечение вы используете не позволяет обрабатывать ANSI, вызвав SetConsoleMode API с
ENABLE_VIRTUAL_TERMINAL_PROCESSING (0x0400)
флагом, вы не будете видеть цвета или получить ANSI обработки для этого приложения.Я предполагаю , что причину примеры , приведенные на этой странице работе является то , что, по- видимому,
echo
команда (или , возможно, пакетной обработкой частиCMD.EXE
илиconhost
) позволяет обрабатывать ANSI путем вызова API только что упомянул. Но многие другие инструменты или исполняемые файлы, которые пишутstdin
илиstdout
могут не делать этого, в этом случае вы не увидите цвет для этих процессов.К счастью, глобальное значение по умолчанию может быть изменено с opt-in на opt-out . Раздел реестра at
HKEY_CURRENT_USER\Console\VirtualTerminalLevel
задает глобальное поведение по умолчанию для обработки escape-последовательностей ANSI. СоздайтеDWORD
ключ (если необходимо) и установите его значение равным1
глобальному включению (или0
отключению`) обработки ANSI по умолчанию.Обратите внимание, что этот параметр реестра управляет значением по умолчанию , что означает, что он влияет только на консольные приложения, которые явно не манипулируют консольным режимом путем вызова
SetConsoleMode(...)
. Из этого следует, что, хотя значение реестра может помочь включить ANSI для приложений, не обращающих внимания на режим консоли , оно не повлияет на любое приложение, ориентированное на режим консоли, которое (по некоторым причинам) может явно отключить ANSI.источник
Начиная с Windows 10 TH2 (v1511),
conhost.exe
(и, как следствие,cmd.exe
) поддерживаются Escape-последовательности ANSI, в частности цвета:Страница MSDN о последовательностях виртуального терминала консоли объясняет, какие последовательности поддерживаются и как их включить:
источник
Windows до 10 - нет встроенной поддержки цветов ANSI на консоли
Для версии ниже 10 консоль Windows не поддерживает раскраску по умолчанию. Вы можете установить Cmder , ConEmu , ANSICON или Mintty (используется по умолчанию в GitBash и Cygwin), чтобы добавить поддержку окраски в командную консоль Windows.
Windows 10 - цвета командной строки
Начиная с Windows 10, консоль Windows поддерживает ANSI Escape-последовательности и некоторые цвета по умолчанию.
Документация MSDN
демонстрация
Пакетная команда
Это
win10colors.cmd
было написано Микеле Локати :источник