2

Я пишу небольшую программу, которая должна обернуть текст, чтобы получить многостолбцовый вывод на экране терминала. Это довольно просто, за исключением необходимости учитывать жесткие вкладки, что я не могу сделать, не зная, каковы настройки остановки вкладок. Есть ли способ запросить настройки табуляции? В OSX команда tabs кажется, устанавливает вкладки, но, кажется, не сообщает о них. Возможно, я могу проанализировать вывод infocmp по значению it , но это, кажется, только ширина вкладки по умолчанию, которая может совпадать или не совпадать с полным набором табуляций.

Есть ли канонический способ изменения настроек табуляции на Unix-подобных терминалах? На винде?

1 ответ1

4

Программа tabs использует данные из базы данных терминала, чтобы сообщить терминалу, какие табуляторы использовать.

Компьютер не знает о табуляциях: используя stty вы можете настроить драйвер терминала на использование жестких вкладок или программ (обычное расширение 8 столбцов на табуляцию). Независимо от того, настроите ли вы жесткие / программные вкладки, большинство приложений в системе все равно примут 8.

Терминальная база данных не предоставляет стандартного способа определить, какие табуляторы установлены. Для широко используемых эмуляций VT100 в xterm и т.д. Эту информацию можно определить с помощью отчета о положении курсора. Кто-то может написать приложение, которое пишет вкладки, использует отчет курсора, чтобы увидеть, где курсор оказался в конце, и вычислить табуляции. (Программа resize использует отчет о положении курсора для определения размера экрана).

Терминальная база данных ncurses предоставляет возможности u6 , которые пытаются описать отчеты о положении курсора, но для практических целей поддерживаются только отчеты в стиле VT100.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .