Выделение или подчеркивание вывода на стандартный вывод в Windows - PullRequest
0 голосов
/ 27 сентября 2018

Фон

Мне нужно перенести скрипт Perl с Linux на Windows.Скрипт выводит на стандартный вывод, выделяет и подчеркивает конкретные слова по мере необходимости.В Linux это можно сделать, окружив слово (а) системными вызовами tput:

tput smso и tput rmso для выделения

tput smul и tput rmulдля подчеркивания

Вопрос

Существуют ли какие-либо системные вызовы в Windows, которые могут легко выполнить эту функцию?Если нет, кто-нибудь знает обходной путь, который приведет к аналогичным результатам?

1 Ответ

0 голосов
/ 27 сентября 2018

Если вы используете Perl для вывода материала, по крайней мере Win32 :: Console может также подчеркивать и в Windows (10 и далее):

my $win32_console Win32::Console->new();

        # Rendering is flakey under Windows 10
my $attr =  0x8000 # COMMON_LVB_UNDERSCORE, Windows 10 onwards
          | 0x4000 # COMMON_LVB_REVERSE_VIDEO, Windows 10 onwards
          ;
$console->Attr($attr);
$console->Write("Hello World");

Но если вы 'просто ищем действительно быстрое исправление портирования, Win32 :: Console :: ANSI «магическим образом» преобразует все последовательности ANSI в ваших выходных данных в соответствующие вызовы консоли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...