Как на самом деле использовать цвета на выходе в языках, как C? - PullRequest
0 голосов
/ 02 марта 2019

Предварительное примечание: Под переносным здесь я подразумеваю кросс-терминал, а не кросс-платформу или кроссплатформенность.Разные терминалы поддерживают разные коды для разных цветов (почему между прочим?)

Итак, я хочу прохладные ПОРТАТИВНЫЕ цвета терминала.Поиск по Google, вы найдете те же старые варианты, но я не хочу их.Я хочу вывод Терминал.Подобно тому, как запуск apt иногда дает коричневатый текст, я не хочу окна в ncurses, и при этом я не хочу жестко кодировать управляющие коды ANSI, такие как \033[31m.Это два традиционных варианта, которые я НЕ ХОЧУ.

То, что я хочу, выглядит следующим образом:

$ some program that doesn't really matter
blah blah earlier terminal output
$ colortest
Hello, World, but this part of the text would be in blue or something!

Нет окна, которое удаляет мой предыдущий вывод терминала или использует альтернативный буфер экрана или что-то еще.Я хочу сделать в C то, что я могу сделать в bash с tput setaf и printf.Но я ничего не могу найти.Кажется, нет библиотеки для этого.Единственные варианты, которые я могу найти, это «Использовать ncurses», которое вызывает окно (насколько я знаю, я искал ncurses без окон, но получил только загрузку окон для ncurses), или «Жесткие коды ANSI», которые также выиграли 'т работа.Есть ли какая-нибудь библиотека для этого или мне нужно будет что-то написать самому, запрашивая такие вещи, как terminfo или не дай бог termcap?Я не нашел этот вопрос раньше, простите меня, если он есть, но я устал от двух неудовлетворительных обходных путей.Мой единственный вариант до сих пор звонил tput через popen и тому подобное.

...