Intereting Posts
yum: дерево зависимостей RPM Корица (Петра) разбилась. Открывается в резервном режиме Что такое подходящая структура именования для хранения пакетов приложений? SSH для сервера, а также команды выполнения и печати Как установить Scala? Крепление FreeBSD: как получить функциональность umask? Почему мои пользовательские файлы crontab неизменяемы и не выполняются даже после изменения атрибута на mutable? Где UNIX ищет информацию для входа? например, где он находит, что делать? Как отключить запрос записей AAAA, когда у меня нет адреса IPv6? Какая утилита читает заголовки LSB в сценариях инициализации System V? Пользователь Windows AD для сброса пароля при входе в Linux Создайте правило iptables, если это правило еще не существует Создание объекта gdbus (сим-карта) читать только символическую ссылку или что-то подобное? Какая опция ядра для «Контроллера Thermal Management Controller для семейств чипсетов семейства Intel 8 Series»

Символ выходной вкладки в окне терминала

Как вывести символ табуляции (ASCII hex 0x09) в окне терминала?

Во всех моих экспериментах символ табуляции заменяется на пробелы, когда он появляется на терминале. Например

$ echo -e "xx\t\tyy" xx yy 

который не нужен, потому что пространство между xx и yy заполнено 14 пробелами, а не 2 символами табуляции. Я попробовал stty tab0 , stty tab1 , stty tab2 и stty tab3 , но все дает тот же результат.

Я использую GNOME Terminal 2.16.0 и Red Hat Enterprise Linux Client версии 5.9.

Предпосылки: Я хочу мыши – выберите текст на терминале и вставьте в Excel. Когда я делаю это из Emacs (с 0x09 вкладками между полями), поля заканчиваются в разных столбцах. Мне это нравится, и мне нужно то же самое поведение при копировании с терминала. Однако в настоящее время все поля заканчиваются одной строкой в ​​первом столбце. Когда у меня есть пробелы (0x20) между полями в Emacs, поведение такое же, как при копировании с терминала.

Вкладка не является печатным символом. Tab – это управляющий символ, который обычно продвигает курсор (но не в конце строки), оставляя символы, которые он перескакивает без изменений.

gnome-terminal (и другие эмуляторы на основе vte) имеют специальный хак, который пытается сохранить вкладки для целей копирования-вставки, однако он все еще теряет их при мягкой линейной развязке. Другие эмуляторы могут также иметь такой взлом, но обычно этого не делают.

См. Также разговор на странице https://bugzilla.gnome.org/show_bug.cgi?id=769316 .

Если вы используете

 printf "xx\t\tyy" 

который должен расширяться до реального символа табуляции. Поведение echo в отношении bash было неустойчивым. Я тестировал bash на своем Debian 7 и обнаружил, что ни echo -t ни /bin/echo -t дал вкладку, а printf (для перенаправления вывода в файл). Вот сценарий:

 #!/bin/bash echo -t "xx\t\tyy" echo done /bin/echo -t "xx\t\tyy" echo done echo "xx\t\tyy" echo done /bin/echo "xx\t\tyy" echo done printf "xx\t\tyy" echo done 

и вывод на терминал:

 -t xx\t\tyy done -t xx\t\tyy done xx\t\tyy done xx\t\tyy done xx yydone 

Это отличается от дополнительной проблемы размещения символов на экране терминала. Как правило, большинство терминалов имеют только пробелы, выбираемые для вырезания / вставки (независимо от того, печатаете ли вы вкладку или нет). Для этого –

  • Можно ли выбрать вкладки в качестве вкладок с мышью в urxvt?

Если вы хотите получить выход в свой буфер обмена, чтобы вставить его в Excel, вы можете попробовать использовать что-то вроде xclip. Обратите внимание, что вам, возможно, придется его установить. Я не знаю, что аргумент «-t» делает на вашем дистрибутиве Linux, поскольку я его никогда не видел, но лично мне нужно добавить «-e», чтобы позволить escape-символам. Но с xclip я могу написать что-то вроде этого.

 echo -e "xx\t\tyy" | xclip -selection c 

Теперь я могу нажать ctrl + v и пропустить его в Excel. Если эхо не работает, вы можете попробовать 'printf'.

Если вы не хотите вводить все это каждый раз, когда вы можете создать псевдоним.

 alias xclip="xclip -selection c" echo -e "xx\t\tyy" | xclip 

И если вы ничего не можете перенаправить вывод, который хотите получить в файл, и просто откройте его в текстовом редакторе и скопируйте то, что вам нужно, поскольку вкладки должны оставаться в виде вкладок в файле.

 echo -e "xx\t\tyy" > tmpfile.txt