Поскольку использование табуляции (код ASCII 9) обычно вызывает всякие проблемы с кодом, используйте хорошее правило:
1) Никогда не используйте табуляцию
1. 1) Единственное исключение: ваш код использует именно её для своих целей (единственный пример, приходящий мне на ум - Makefile)
Причины не использовать табуляцию
- В зависимости от наследственности, разные редакторы по разному трактуют табуляцию. UNIXовые редакторы отображают табуляцию как 8 пробелов, а Windowsовые и различные IDE (Eclipse) – как 4.
- Не всегда может быть достигнуто согласие по длине табуляции между различными текстовыми редакторами и различными людьми.
- По этой причине использование табуляции может сделать исходный код нечитабельным и затруднить его сопровождение, если над ним работает более одного человека. Вы редактировали его в одном редакторе, ваш товарищ – в другом, и когда Вы снова его открываете – Вы видите мешанину текста с абстрактными отступами.
- Ещё хуже дело обстоит с языками, которые строго относятся к пробелам (Python, CoffeeScript), так как такая неразбериха может привести к логическим или синтаксическим ошибкам.
И всех этих проблем Вы можете избежать если просто будете использовать вместо табуляций пробелы.
Даже если Вы единственный, кто редактирует код, Вы можете в какой-то момент поменять текстовый редактор и свернуть себе шею.
Использовать пробелы вместо табуляций не будет проблемой потому что…
- Все текстовые редакторы могут на лету преобразовывать табуляцию в пробелы при редактировании файлов. Если какой-то из распространённых редакторов (кроме блокнота) этого не делает – сообщите мне!
- Обычно текстовые редакторы содержат настройки для длины табуляции и отступов. Вот последнее-то Вы и можете спокойно поменять.
Псевдо-аргументы за использование табуляций
- Это сокращает размер файла – а Вас действительно беспокоят несколько байт на вашем терабайтовом диске?
- Да беспокоит, потому что мой файл скачивают из сети! – если Вас это и правда волнует, то в первую очередь оптимизацию размера надо делать в другом месте.
- Мне они нравятся… – не обосновано
- Люди не любят изменений
У Вас, конечно, может быть уже какой-то проект со своими традициями оформления кода. Если он имеет достаточный размер, например, как у ядра Linux, поменять оформление может быть не так легко. Но даже в этом случае Вы можете постепенно избавляться от табуляций.
Рекомендации по оформлению кода
- Python рекомендует не использовать табуляцию
- PHP рекомендует не использовать табуляцию
- Java рекомендует не использовать табуляцию
- CSS рекомендует не использовать табуляцию
- и т.д.
Текстовые редакторы
Если Вы автор текстового редактора, убедитесь что по умолчанию у него отключена табуляция, особенно для языков, чувствительных к отступам, если ваш редактор реагирует на языки
Обратите внимание, что этого поста бы не было бы, если бы
- Все текстовые редакторы не использовали табуляцию по умолчанию
- Все текстовые редакторы трактовали бы табуляцию как 8 пробелов
Но кто-то когда-то решил сделать нашу жизнь чуть сложнее.
Брехня какая то, если у меня настроено, что табуляция это 2 пробела, то в каком бы редакторе табуляию не поставили у меня она всегда будет в два пробела.
ОтветитьУдалитьтак тут речь идёт о том, что в файле не должно быть табуляции - символа с кодом 9, а если у тебя автоматом заменяется табуляция на два пробела - понятно что проблемы не будет.
УдалитьТут о другом: ты ставишь табуляцию, которая отображается как два пробела. Открываешь файл на другом компе, где она отображается как 4 пробела. Добавляешь строку таким же отступом, то есть с 4 пробелами. И в первом редакторе увидишь, что отступы будут разные.
Надеюсь, этот поток сознания был понятен))
У меня знак табуляции выглядит как два пробела, и если кто то другой в исходниках использовал знак табуляции то для меня все будет выглядеть так как я привык, в отличии от тех кто юзает пробелы.
УдалитьИзменить отображение табуляции дела двух секунд.
для тебя - да, а для него - нет. и для того чтобы сделать код ясным он его подправит под себя. Вот тогда-то ты и столкнёшься с проблемой. или если будешь редактировать на разных ОС
УдалитьЧто за проблема в разных ОС?
УдалитьХотел бы я посмотреть на человека который из принципа будет править все табы на пробелы.
Да и чем отличается код с табом от кода с 4 пробелами?
так об этом же написано - в windows \t=4 пробела а в UNIX 8. И править не надо - в нормальных редакторах это делается автоматом.
УдалитьКод не отличается, просто при совместном редактировании могут быть проблемы
Табуляция стирается одним нажатием на backspace а чтобы стереть пробелы 2,4 или 8 раз надо нажать.
ОтветитьУдалитьтут я соглашусь - когда перешёл на пробелы сразу задолбался их стирать) но с другой стороны не возникает проблем при копировании в разные системы / сайты - а то иногда табуляция слишком сильный сдвиг даёт, что всё за границы уезжает, особенно в консоли
УдалитьБред а не статья! Я ее даже не стал дочитывать.
ОтветитьУдалитьИтак, бред потому что, тот кто писал эту статью видно что новичок в этих делах.
1) Чем больше пробелов тем больше вес страницы
2) Без табуляции ужас будет творится в кодах. Читабельность сразу отпадает. Из-за трудной читабельности допускаются часто ошибки.
А от этого бреда я чуть со стулу не свалился:
Python рекомендует не использовать табуляцию
PHP рекомендует не использовать табуляцию
Java рекомендует не использовать табуляцию
CSS рекомендует не использовать табуляцию
Я как Java, PHP, JavaScript, HTML, SQL и CSS разработчик, ржу над такими словами. Так как на официальном сайте PHP, ссылочку сейчас не смогу предоставить, было рекомендация по использованию табуляций в коде по след. причинам:
1) Для упрощения восприятия кода
2) Для красоты написания кода
3) Для более быстрой работы интерпритатора
И еще читал на офф. сайте java, что Табуляция "Желательна к использованию" и там же приводились эти же аргументы и еще куча других аргументов
На офф. сайте Мускула было тоже рекомендация по использованию табуляции.
Так что удалите эту статью, и не за блуждайте народ!
Ответ на ваши слова есть в тексте статьи.
УдалитьВ ссылках (по крайней мере для PHP) написано "2 пробела, без табуляций". Так что кидайте ссылки, чтобы подтвердить свои слова.
ЗЫ "заблуждайте", если уж так хочется. в одно слово
В детстве очень рекомендовалось перекодировать русскую "р" в схожую по написанию английскую. Прям на каждой доске было написано.... Вспомнилось, после прочтения Вашей статьи, в которой _то,_что_автор_хочет_написать_ предлагается под каким-то очень жидким соусом, менять на _то,_что_похоже, но при этом будет отображаться в специфических условиях так, как этого хочет автор статьи и авторы специфического ПО.
УдалитьХочет человек ставить табуляции - пусть ставит.
Хочет кто-то потом редактировать его код - будь любезен ставить табуляции. Ну или быть ответственным за то, что третий, кто откроет данный говнокод сможет в настройках редактора исправить длину табуляции.
Здравствуйте! Прочитала про коды табуляций и.... Я теперь долго ищу КАК ИЗБАВИТЬСЯ от настырной табуляции. Некоторые страницы ворда я открываю, и там - ВСЁ нормально. Но некоторые страницы - решают сам, что им делать с табуляцией. Я не могу вставить нормальное фото, не могу напечатать текст, и НЕТ НИКАКОЙ ВОЗМОЖНОСТИ избавиться от этих самовольных хозяев страницы. Испробованы все советы. Мучаюсь до тех пор, пока очередная вордовская страница будет без фокусов табуляции. Все комментарии тут очень давних лет, и я, навряд ли получу комментарий о том, ТАК ЧТО, ВСЁ-ТАКИ, надо сделать, чтобы знаки табуляции не вели себя как хозяева. Даже избавиться от них - ПРОБЛЕМА,
ОтветитьУдалитьну для начала эта статья имеет отношение к ворду чуть меньше чем никакого)
Удалитьну а потом, это очень зависит от конкретной проблемы
и вордом я стараюсь не пользоваться
Здравствуйте! Я, конечно, полный профан в Интернете, так как познакомилась немного с Интернетом около 3-х лет тому назад. Вы стараетесь вордом не пользоваться, а я знаю только ворд и эксель. Что ли рассмотреть табличку как следует, там много чего написано, что открыть? Попробую.
ОтветитьУдалить