Как установить выходной цвет Clink?

1029
Pacerier

По умолчанию Clink выводит текст белым цветом. Например, после введения Clink, набрав clinkTabTabпоказывает:

Как установить выходной цвет Clink?

Если я установлю в окне cmd черный текст на белом фоне («Свойства» → «Цвета»), это будет вывод:

Как установить выходной цвет Clink?

Второй ряд не виден, потому что это белый текст на белом фоне. Вывод текста Clink остается белым, игнорируя настройки цвета для окна cmd.

Как мы можем установить выходной цвет Клинка ?

Есть ли что-то похожее set clink.prompt_colour=12на выходной цвет?

1

1 ответ на вопрос

3
krowe

It's not possible without 3rd-party apps.

clink doesn't insert colors into the output, it only allows the command shell to interpret them. You need to use a program which displays color output. These are mostly Linux applications because cmd.exe doesn't usually show them anyway. For example, if you install the GnuWin32 version of ls you can see color in a console which has already been injected.

First inject clink. There are several ways to do this. The other methods are listed on the clink information page:

clink.exe inject 

Then you can use the command:

ls --color 

To view directory listings in color.

If you also install the printf command then you can color the output of your own scripts. For example:

printf "\033[0;31mhello\33[0m, \33[0;32mworld\33[0m" 

Will print 'hello' in red and 'world' in green. You could also use the GNU echo command, with the -e option, but because that is already a Windows command you'll need to use the full path to the exe every time you use it.

There are surely other programs which can do this but this is how I use it. I've written a full guide to setting this up the way I use it that you may be interested in.

Однако Clink может точно настроить цвет подсказки: `set clink.prompt_colour = 12`. Разве нет эквивалентной опции для установки цвета текста? Pacerier 9 лет назад 1
Программы должны выводить специальные последовательности символов, чтобы сообщить консоли, какие цвета выводить. Поскольку консольные приложения Windows не выводят эти символы, очень немногие приложения для Windows будут окрашены (если они специально не предназначены для работы с clink). clink может изменить командную строку, поскольку он добавляет эти символы в приглашение. Некоторые программы Windows будут отображать цвет, хотя. Например, TYPE также выведет цвет, если в отображаемом файле есть необходимые символы. krowe 9 лет назад 0
Клинк заявляет, что он подключается к `ReadConsole ()`, поэтому он не сможет назначить цвета и для вывода? Еще одна странность, если это не так, почему белый цвет вместо цвета, который использует cmd (который устанавливается на черный, используя «свойства >> цвета» в окне cmd). Pacerier 9 лет назад 0
Я уже объяснил, что это делает это. Проблема в том, что 99% приложений Windows не выводят коды выхода цвета. Попробуйте это, создайте новый текстовый файл в Notepad ++ и выберите `Edit -> Character Panel`. Затем возьмите строку, которую я дал выше `/ 033 [0; 31m ....`, и вставьте ее в файл. Затем замените каждый `/ 033` символом` ESC` (27 десятичное число). Тогда сохраните это. Теперь вы можете набрать `TYPE myfile.txt`, и вы увидите, что он тоже цветной. К сожалению, TYPE - это одно из немногих приложений Windows, которое вы сможете получить для вывода этих символов. krowe 9 лет назад 0
Мне просто пришло в голову, что вам также нужна консоль, способная интерпретировать эти цветовые коды. Есть несколько способов сделать это. Я использую ConEmu, но если вы хотите, чтобы консоль по умолчанию делала это, вам понадобится замена ANSI.SYS, например, ANSICON: http://adoxa.altervista.org/ansicon. Недостатком этого является то, что он будет постоянно (AFAIK) добавлять поддержку цвета к вашей консоли (потому что он заменяет вашу текущую DLL). Если вы хотите использовать это, просто скачайте его и запустите `ansicon.exe -i`. С этого момента ваша консоль будет иметь поддержку цвета. krowe 9 лет назад 0
Вот что я вижу с `type myfile.txt`: http://i.stack.imgur.com/7yC7M.png. Напомним, вы говорите, что у cmd по умолчанию нет поддержки цвета, поэтому Clink не сможет выполнять цвета тоже? Но почему кажется, что Clink устанавливает цвет текста на белый, даже после того, как я изменил настройки cmd для цвета текста на черный? Pacerier 9 лет назад 0
Поддержка цвета, предлагаемая консолью cmd.exe по умолчанию, очень плохая. clink поддерживает оба, но если вы используете значение по умолчанию, то clink очень ограничен в том, что он может сделать в этой ситуации. Если вы используете что-либо со стандартной поддержкой ANSI, то это нормально (после настройки). Вы можете использовать ANSICON или что-то вроде ConEmu, чтобы получить эту поддержку. krowe 9 лет назад 0
Кстати, я вижу, что вы называете «Clink» как «CLink». Почему вы называете это "CLink"? Вернуться к теме: Почему Clink может установить цвет приглашения для cmd по умолчанию, но не цвет вывода? Это связано с ошибкой или с внутренним ограничением Windows? Pacerier 9 лет назад 0
Я просто называю это так, чтобы вы могли точно видеть, что я делаю. Обычно я использую ConEmu для его внедрения, но иногда я просто запускаю файл `* .bat`. Это не ошибка или ограничение клинка. Клинк не выводит приложение как часть своей работы, и уже есть другие инструменты, которые это делают. Я «верю», что в прошлом он включал часть модифицированной системы ANSI, но они удалили это, потому что это уже обрабатывалось приложениями, такими как ansicon.exe. krowe 9 лет назад 0
Правильно ли я сказал, что вы говорите, что «это невозможно без сторонних приложений»? Pacerier 9 лет назад 1