Я обрабатываю входные данные (из таких источников, как, например, ls -la --color) и подчеркивая некоторые разделы текста. Я не обрабатываю эти входы по-символам, но с большим количеством регулярных выражений, что затрудняет отслеживание того, что подстрока, на которую я влияю, уже окрашена или выделена жирным шрифтом. Если у меня есть красный блок текста, и я хочу, чтобы подчеркнуть какую-то часть его, я мог бы сделать что-то вроде:.В xterm можно отключить полужирный или подчеркивание без сброса текущего цвета?
s/(123)/\033[4m\1\033[0m/g
(Мои выражения являются гораздо более сложными В действительности, спички добыты, обработаны самостоятельно , и дальше разбивать и анализировать. Это не то, что можно сделать, изменив выражение, которое я здесь привел.)
В приведенном выше коде были бы заменены все сообщения 123 с помощью [UNDERLINE_START] 123 [FORMAT_RESET]. К сожалению, сброс также отключает окраску текста. Это избавило бы меня от большой головной боли, если бы я мог просто отключить подчеркивание, когда это все, что я хочу отключить, но я уверен, что нет никакого способа сделать это. Может ли кто-нибудь сказать мне, что я неправ?
EDIT: Я мог бы упростить вопрос, спросив: если я хочу отключить подчеркивание, могу ли я сделать это, не затрагивая текущий цвет текста, поскольку этот цвет мог быть установлен задолго до того, как мой скрипт даже начал выполняться, и я не имеют способа определить, что такое цвет?
http://en.wikipedia.org/wiki/ANSI_escape_code#CSI_codes – chepner
Подождите .. как делает 1 перейдите к 2? Все остальные следуют вашему правилу 20. – mpen
'2' для тусклого цвета, не отключая жирный шрифт. '22' предназначен для отключения dim ** и ** жирным шрифтом. Отключение полужирного шрифта с помощью '21' не поддерживается широко (например, нет поддержки в macOS). – Rockallite