Назад | Перейти на главную страницу

Как предотвратить расширение экрана GNU вкладками на пробелы?

Использование обычного приглашения bash echo -e 'hello\tworld' производит настоящую вкладку. Однако та же команда, выполняемая на экране GNU, помещает пробелы между двумя словами.

Я тестировал это на Ubuntu 10.04 с версией экрана 4.00.03jw4 (FAU) 2 мая 2006 года и RHEL 5.5 с версией экрана 4.00.03 (FAU) 23 октября 2006 года.

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

Нет, нет другого выхода, кроме написания кода. Взгляните на страницу руководства в разделе "ОШИБКИ:"

  • Экран не использует аппаратные вкладки.

Аппаратное обеспечение в моем случае - это программный «gnome-terminal».

Этот простой эксперимент внутри экрана GNU показывает мне, что "\ t" выводит символ TAB (НОТА: У вас отсутствовал флаг "-e" в вашей команде echo):

skx@birthday:~$ echo -e "Hello\tWorld" | od -c
0000000   H   e   l   l   o  \t   W   o   r   l   d  \n
0000014

Теперь я повторяю эту команду и сохраняю результат в файл, проверяя, что символ TAB все еще присутствует:

skx@birthday:~$ echo -e "Hello\tWorld" > x
skx@birthday:~$ od -c < x
0000000   H   e   l   l   o  \t   W   o   r   l   d  \n
0000014

НО если я скопирую этот файл и копирую и вставляю его с помощью мыши в emacs, TAB теряется. Похоже, что родительский gnome-terminal делает что-то странное, или вкладка преобразуется при вставке в новое окно. В любом случае, я подозреваю, что GNU Screen не виноват.