Табуляция
Горизонтальная табуляция (HT, TAB) — управляющий символ таблицы ASCII с кодом 0916, используется для выравнивания текста по горизонтали. Встретив этот символ, терминал перемещает каретку (или курсор) вправо на ближайшую позицию табуляции. Традиционно эти позиции располагаются каждые 8 знакомест, в колонках 1, 9, 17, 25… Вводится при помощи клавиши Tab ⇆ , во многих языках программирования обозначается как \t.
Если отправить на печать текст (символ табуляции обозначен стрелкой)
получим такую распечатку:
Также существует вертикальная табуляция VT с кодом 0B16, в настоящее время используемая крайне редко.
Содержание
В текстовых редакторах
В текстовых редакторах позиции табуляции могут идти каждые 2 или 4 знакоместа: это удобно для работы с языками программирования. По желанию пользователя клавиша Tab ⇆ может не вставлять символ-табулятор, а имитировать его, вставляя нужное количество пробелов.
Одни стандарты оформления кода категорически запрещают символы-табуляторы: независимо от того, на сколько позиций настроен редактор или просмотрщик, текст будет выглядеть одинаково; в строковых константах же невидимый символ можно спутать с пробелом. Другие — требуют пользоваться именно табуляторами, а не пробелами.
В текстовых процессорах
Текстовые процессоры позволяют расставлять позиции табуляции в любых местах текста и выравнивать текст по любую сторону этих позиций (по левую сторону, по центру, по правую сторону). При желании символ табуляции может отображаться как отточие. С помощью табуляторов часто реализуются нумерация формул, списки определений, оглавления.
Сходная функциональность у таблиц. Но есть и отличия: текст, выровненный табуляторами, невозможно разлиновать на строки и столбцы. Зато в таблицах текст не может выходить за пределы ячеек.
Табуляция в (X)HTML
В (X)HTML горизонтальная табуляция обозначается как 	, однако она отобразится браузером только будучи использованной внутри тегов <pre> и <textarea>:
Пример HTML-кода с использованием внутри тега <pre>
Браузер отобразит этот код так:
Вертикальная табуляция обозначается как , однако она не используется в SGML (включая HTML) или XML 1.0.
Клавиша Tab ⇆ в прикладном ПО
За клавишей Tab ⇆ закрепились такие функции:
- В текстовых редакторах, текстовых процессорах — ввод символа табуляции, работа с отступами.
- В графических интерфейсах — прыжок. В частности, в Windows Tab ⇆ — переключение между элементами текущего окна, Alt + Tab ⇆ — переключение между программами. Прыжок в обратную сторону — ⇧ Shift + Tab ⇆ .
- В консольных интерфейсах (например IOS, bash, Zsh), в том числе в консолях компьютерных игр (например, Quake 3, Doom 3, Unreal Tournament) — автодополнение команды.
См. также
-
— формат представления табличных данных, использующий табуляцию как разделитель
- Клавиатура
- Управляющие символы
- Непечатаемые знаки
- Пробельные символы
- Стандарт оформления кода
Wikimedia Foundation . 2010 .
Полезное
Смотреть что такое «Табуляция» в других словарях:
табуляция — сущ., кол во синонимов: 1 • табулирование (1) Словарь синонимов ASIS. В.Н. Тришин. 2013 … Словарь синонимов
табуляция — Перемещение курсора к следующей позиции. [http://www.morepc.ru/dict/] Тематики информационные технологии в целом EN tabulation … Справочник технического переводчика
табуляция — табул яция, и … Русский орфографический словарь
Горизонтальная табуляция — Источник: ГОСТ 22562 77: Аппараты телеграфные буквопечатающие. Термины и определения оригинал документа Смотри также родственные термины … Словарь-справочник терминов нормативно-технической документации
вертикальная табуляция — вертикальное форматирование Возможность текстового редактора размещать текст вертикально внутри границ, установленных пользователем. [ГОСТ Р ИСО/МЭК 2382 23 2004] вертикальная табуляция Число строк, которые должны быть пропущены на странице перед … Справочник технического переводчика
горизонтальная табуляция — горизонтальное форматирование Возможность текстового редактора размещать текст горизонтально внутри границ, установленных пользователем. [ГОСТ Р ИСО/МЭК 2382 23 2004] горизонтальная табуляция Горизонтальное перемещение положения курсора к… … Справочник технического переводчика
КРОСС-ТАБУЛЯЦИЯ — (CROSS TABULATION) Распространенным способом представления данных являются двумерные таблицы, в которых значения одной переменной соотносятся со значениями другой. Примером может служить кросс табуляция электоральных намерений и социального… … Социологический словарь
вертикальная табуляция — stačiasis tabuliavimas statusas T sritis radioelektronika atitikmenys: angl. vertical tabulation vok. Vertikaltabulation, f rus. вертикальная табуляция, f pranc. tabulation verticale, f … Radioelektronikos terminų žodynas
комбинированная табуляция (данных) — — [А.С.Гольдберг. Англо русский энергетический словарь. 2006 г.] Тематики энергетика в целом EN cross tabulation … Справочник технического переводчика
Что означает "tab" в программировании?
Читаю книжечку «Code Conventions» и наткнулся на эту не до конца понятную для себя вещь:
Indentation.
Four spaces should be used as the unit of indentation. The exact construction of the indentation (spaces vs. tabs) is unspecified. Tabs must be set exactly every 8 spaces (not 4).
Переведите дословно, пожалуйста, что означает слово «TAB» или «TABS» в русском языке? Гугл переводит, как «вкладка», но не до конца понятно это.
![]()
Подразумевается клавиша «Tab» на клавиатуре.
![]()
Действительно, есть с этим путаница. У вас, во втором предложении «The exact construction of the indentation (spaces vs. tabs) is unspecified», под «tabs» подразумеваются символы табуляции. Но тут же в третьем предложении «Tabs must be set exactly every 8 spaces (not 4)», под «Tabs» имеются в виду отступы от левой границы.
Дело в том, в соглашениях об оформлении кода регламентируется количество пробелов которое должен содержать такой отступ. В программистских редакторах кода всегда есть соответствующая настройка. Дополнительно в соглашениях может оговариваться обязательно ли заменять символы табуляции, которые вводятся собственно клавишей TAB, на оговоренное количество пробелов. И получается, что одно нажатие клавиши TAB вводит один отступ, поэтому отступы и называют табами.
Все эти соглашения нужны для того, чтобы все участники команды видели бы текст программы одинаково так же, как его отформатировал автор. А иначе, если настройки не будут согласованы, то форматирование «уедет».
Пора завязывать использовать пробелы вместо табуляции в коде
Этот топик — ответ на топик «Пора завязывать использовать символы табуляции в коде».
Я хотел было ответить к комментариях, но в силу объема и желания независимости от исходного топика решил создать новый топик.
Итак, под катом — почему табы лучше пробелов, самые значительные заблуждения касательно табов и как ими правильно пользоваться.
Начнём с того, что большинство людей (по крайней мере на Хабре) предпочитают табы.
По ссылке есть очень классный комментарий от GreyCat:
На самом деле странно то, что многие до сих пор не отличают indentation и alignment. Ну, вот это — indentation:
А вот это — alignment:
Первое можно делать и табами, и пробелами, но когда делаешь табами — каждый может подстроить ширину indent’а на свой вкус и ничего никуда не едет. А второе — строго пробелами.
В IDE есть опция Smart Tabs для этого: 
Если правильно использовать табы (а именно — только для indentation) — можно без проблем менять размер табов не нарушая стиль программирования.
2 пробела на таб:
5 пробелов на таб:
9 пробелов на таб: 
Так каких проблем мы лишаемся?
1. Каждый программист может настроить длину табуляции под свой вкус. Всегда работает на практике. Когда код с большой вложенностью — можно поставить ширину табуляции в два пробела, иначе — в четыре.
2. Легче работать с посторонними библиотеками. Какие-то библиотеки поддерживают стиль с шириной таба в два пробела, какие-то с шириной в четыре пробела. Только использование табов не накладывает ограничение на стиль.
Процитирую пару мыслей из предыдущего топика:
На самом деле в проектах, которые используют табуляцию таких проблем нету — так как табуляция безразмерна, а вот поддерживать одновременно пару библиотек с разным размером пробело-табуляции становится проблематичным, т.к. уже нельзя пользоваться tab (чтобы IDE заменяла табы на пробелы). Конечно, есть шанс решить такую проблему разными проектами с разными настройками, но это тот еще костыль, да и башку все-равно сносит от разных размеров вложенности.
Аналогично, табуляция — безразмерная. Такая проблема есть только в проектах, которые используют пробелы. Там где используются табы — они могут быть хоть 2, хоть 10 символов шириной.
Допустим, я открываю Kate, чтобы по-быстряку поправить код в каком-то файле. Оппа, размер табуляции два пробела. Надо лезть в конфиг. А в соседнем файле из другой либы — четыре пробела. Придётся пользоваться пробелом вместо таба для отступов, ужас. С табами такой проблемы нету.
Как выше разобрали, такая проблема есть именно с проблемами, а не с табами.
А еще дополнительно у пробелов есть такие недостатки, как невозможность быстрого перемещения стрелочками клавиатуры (щёлкает каждый пробел, а не через блок), возможность допустить ошибку (поставить в одном месте 3 пробела вместо 4, чем порушить дальнейшую структуру), увеличение размера файла и куча всего ещё.
Вывод
У пробелов нету ни одного существенного преимущество по сравнению с табами, при этом мы не сковываем программиста в рамки и не заставляем его мучаться с слишком маленькими (или слишком большими) для него табами.
Главное
Не так важно, что именно вы используете. Важно, чтобы вы следили за порядком своего кода и всегда придерживались одного и того же стиля. Включите отображение табов/пробелов, иногда меняйте размер табуляции на другой и пробегайте глазами код, чтобы удостоверится, что у вас где-то не вставились пробелы вместо табов или табы вместо пробелов.
Символы управления в программировании

При создании программного обеспечения разработчикам приходится не только использовать стандартные возможности и инструменты выбранного языка, но и знать специальные команды, а также управляющие символы. О них и зайдет речь далее.
Особое внимание будет уделено символу «t». Он используется в самых популярных языках программирования для обозначения специальной команды управления.
Особенности T
T – латинская буква, используется в IT достаточно давно, но ее утверждение как часть Unicode состоялось только в 1993 году. Парной зеркальной скобки не имеет. Композиционные исключения отсутствуют.
У заглавной T несколько способов выражения:
- \0054 – в CSS;
- T – в HTML-языке;
- U+0054 – в Юникоде.
У строчной t они будут следующими:
- U+0074 – для Unicode;
- \0074 – для CSS;
- t – в HTML-коде.
Строчной рассматриваемый символ был официально закреплен в Unicode 1.1 тогда, когда и заглавный.
Управляющие символы
Управляющие символы – это символы в кодировке, которым не приписано графическое изображение, но которые применяются для управления устройствами, передачи данных и иных целей.
Сейчас в основном используются:
- языки управления устройствами;
- сетевые протоколы;
- форматы файлов.
Это приводит к тому, что управляющие символы или не используются, или применяются не по прямому назначению.
В стандарте POSIX (переносимом интерфейсе операционных систем) обязательно используются символы так называемого переносимого набора. Он включает в себя 103 элемента. Они должны присутствовать в любой кодировке, а также в языках программирования.
В Python
В Питоне, как и в других ЯП, часто встречаются такие «знаки»:
- \n – отвечает за перевод каретки (указателя) на следующую строку;
- \r – перевод на начало текущей строки;
- \b – перевод на один элемент (знак) назад.
Запись типа «\t» — это табуляция. Обозначение произошло от «tab». Данная «команда» — это своеобразная «красная строка». Отвечает за появление отступа.
Выше – наглядный пример того, как работает соответствующие элементы в программном коде Pascal.
Escape-последовательности – это символы, которые выталкиваются в поток вывода, необходимые для форматирования информации, отображаемой на дисплее устройства. Иногда в C++ помогают печатать некоторые «управляющие знаки».
| Символ | За что отвечает |
| \t | Организовывает горизонтальную табуляцию |
| \n | Новая строка |
| \r | Переводит каретку на начало текущей строки |
| \v | Вертикальная табуляция |
| \» | Ничего никуда не переводит. Позволяет проставить двойные кавычки |
| \’ | Обозначает знак апострофа |
| \\ | Приводит к печати обратного слеша |
| \0 | Тоже не переводит каретку в ту или иную область. Вместо этого печатает нулевой символ |
| \? | Знак вопроса |
| \a | «Спикер» компьютера. Активирует компьютерный специализированный сигнал. |
Все эти элементы должны оформляться в двойных кавычках. Если в C++ нужно вывести то или иное сообщение, предложенные вниманию элементы записываются прямо в нем. Там, где нужно. Если пренебрегать данным принципам, строка будет считана без учета управляющих элементов.
Выше – пример того, как выглядит программа с рассматриваемыми компонентами. В 9 строке в выходной поток поступает «сигнал», отвечающий за перевод каретки на две табуляции. Далее происходит печать сообщения.
В 10 строчке происходит возврат каретки с печатью характерного сообщения. Оно займет место надписи, которая была на предыдущем шаге. Строка 11 отвечает за перевод «текста» в оформленный в кавычки. Строка 12 нужна для того, чтобы при запуске приложения воспроизводился характерный звук.
ASCII
Таблица ASCII впервые возникла в 1963 году. В ней были закреплены управляющие «знаки». Всего их 29 штук. Большинство из них находилось в диапазоне 00-1F.
Соответствующие компоненты применялись не для того, чтобы осуществлять перевод каретки на компьютере, а для телетайпов и видеотерминалов. Вводились вместе с клавишей ctrl. Она обнуляла в коде введенной клавиши бит 6.
Сейчас управляющие символьные обозначения ASCII нигде, кроме терминальных эмуляторов, не используются. Напрямую поддерживается ввод перевода строки, а также табуляции. Большинство представленных элементов на деле не имеют практического применения.
Особенности переносимого набора
Обычно является основным набором всех современных языков программирования. На коды символов отсюда накладываются определенные ограничения:
- NULL не может кодироваться числом;
- десятичные цифры идут по возрастанию, а коды соседних элементов различаются на единицу;
- для одного элемента при кодировании достаточно одного байта;
- при использовании в языке C типа char, получающиеся коды должны быть неотрицательными.
Символ t использовать для перевода каретки проще простого. Никаких особенностей и ограничений он не имеет.
Как лучше разобраться в теме
Чтобы научиться делать перевод строк в программировании и операционных системах, а также разобраться в принципах создания приложений с нуля, рекомендуется пройти дистанционные онлайн-курсы.
На них в срок до 12 месяцев пользователи смогут разобраться с выбранным ЯП, а также любым его инструментом. Программа подбирается с учетом первоначального спектра знаний и навыков у ученика. В процессе обучения гарантируется постоянное кураторство, а также богатый практический опыт. Подтверждаются полученные навыки и умения при помощи официального электронного сертификата.
Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus!