2 пробела или 1 табуляция, каков стандарт отступов в сообществе Rails?

Я заметил, что большая часть HTML/XML/HAML, созданного плагинами, использует 2 пробела вместо 1 табуляции. Я использую textmate и вкладки установлены на 4 пробела для HAML/HTML/XML и 2 пробела для Javascript/Ruby, но мне нужно нажать клавишу табуляции только один раз, чтобы получить хороший отступ. Двойное нажатие пробела и дважды удаление кажется слишком трудоемким :p.

Вы вручную вводите два пробела или какой-то средний слой преобразует вкладки в два пробела? Или лишь немногие из вас используют вкладки?


person Lance Pollard    schedule 20.04.2010    source источник
comment
Textmate позволяет заменить клавишу табуляции на x пробелов (2 или 4). Я предполагаю, что другие текстовые редакторы позволили бы то же самое.   -  person Tony Fontenot    schedule 21.04.2010
comment
@ Тони Фонтено прав. Просто убедитесь, что вы включили Soft Tabs.   -  person maček    schedule 21.04.2010
comment
Сделанный! Мягкие вкладки и настройки вкладок находятся в нижней части окна textmate для других.   -  person Lance Pollard    schedule 21.04.2010
comment
Забавно, сколько голосов против получает каждый ответ на этот вопрос.   -  person Mike    schedule 16.11.2012
comment
Это всегда такая боль в заднице, когда приходится иметь дело с товарищами по команде, которые не следуют правилам...   -  person Pablo Marambio    schedule 22.02.2013


Ответы (7)


Обычно согласовывается 2 места.

person Ben    schedule 20.04.2010
comment
есть ли какая-то причина для этого, для справки? спасибо за ответ, начну делать :) - person Lance Pollard; 21.04.2010
comment
Что ж, поскольку вы спросили конкретно о Rails, думаю, я могу указать на тот факт, что сама кодовая база Rails использует 2 пробела. Поскольку это такая широко используемая и дополненная кодовая база, я думаю, что мы можем принять 2 пробела как соглашение. - person Ben; 21.04.2010
comment
Итак, чтобы ответить на ваш первоначальный вопрос. Это стандарт, потому что это условность. И это условность, потому что это стандарт. en.wikipedia.org/wiki/Circular_reasoning - person Gerry; 01.07.2012
comment
Я знаю, что @Gerry просто шутит, но нет, это просто стандарт, потому что так принято. Те, кто создал конвенцию, не следовали стандарту. - person Ben; 12.07.2012
comment
Он хотел знать причины своего выбора, и ваш ответ сводился к тому, что он был выбран. Я высмеивал это. - person Gerry; 12.07.2012
comment
То, что мы должны выбирать, глупо. Мы должны дать людям возможность выбирать между двумя или четырьмя помещениями. Ой ! Ну... это называется Табс... - person user2854544; 04.06.2014

Что касается всех аргументов о том, что разные редакторы показывают вкладки разной ширины...

Это настройка конфигурации!

Измените свои редакторы, чтобы использовать два пробела для каждой вкладки. Разная ширина в разных редакторах не аргумент. Это спорный вопрос. Во всяком случае, использование вкладок позволяет людям, предпочитающим разную ширину, устанавливать и использовать ту ширину, которую они предпочитают. Черт, я думаю, мне нравятся 3 пробела.

И вам нужно дважды нажать клавишу Backspace, чтобы отменить отступ один раз. Я программист, я ленивый. Я не люблю делать что-то больше одного раза!

person Mike    schedule 08.12.2011
comment
С вкладками вы вынуждены настраивать ширину для правильного просмотра. С пробелами вы вынуждены легко настраивать ширину для редактирования (например, vim на backspace удаляет несколько пробелов). Поэтому для пробелов есть хоть какой-то шанс, что не придется настраивать только для нормального просмотра. Однако пробелы занимают больше... места. - person Ciro Santilli 新疆再教育营六四事件ۍ 01.02.2014
comment
Вы можете настроить ширину табуляции один раз в своем редакторе и больше никогда не менять ее. Это только если вы не хотите по умолчанию. Который в каждой современной IDE/редакторе, которую я использовал, по умолчанию равен 4. - person Mike; 03.02.2014
comment
Люди всегда говорят, что предпочитают пробелы, потому что код везде выглядит одинаково, как будто это желательно для всех. Идея использования вкладок заключается в том, что люди могут видеть код так, как им нравится. Если ваш код выглядит плохо, когда кто-то меняет размер табуляции, то это ваша вина, а не редактора. Код должен выглядеть хорошо независимо от того, какой размер вкладок я выбрал для своего редактора/просмотрщика (учитывая, что я выбираю разумный размер, скажем, от 2 до 8). Люди должны перестать заставлять всех остальных использовать их предпочтение отступов, и это то, что вам дают вкладки. - person Jens; 09.12.2014
comment
Я бы хотел, чтобы это было высечено на моем надгробии. Хорошо сказано, Йенс. - person Mike; 09.12.2014

2 пробела. Даже для простых детей Руби.

person maček    schedule 20.04.2010

Два пробела становятся стандартом, потому что они являются «достаточным» отступом, чтобы сделать отступ HTML понятным для большинства людей, а также потому, что HTML имеет тенденцию вкладываться очень глубоко — гораздо глубже, чем обычно вкладывается при программировании — и что-то большее, чем два пробела довольно быстро начинают отталкивать HTML от правого края экрана с 80 столбцами.

Не используйте вкладки; используйте два пробела. Вкладки проблематичны, потому что они могут быть разной ширины в разных редакторах (и терминалах, если уж на то пошло). Поскольку пробелы удаляются, когда вы убираете свой HTML-код перед развертыванием, использование вкладок не дает максимальной пропускной способности; они просто вводят подстановочный знак в ваш опыт разработки.

Я использую Emacs, который автоматически делает отступы XML, HTML и SGML с двумя пробелами. Меня бы очень раздражало, если бы мне пришлось самому вводить символы отступа; поэтому у меня есть редактор. :)

person Brandon Rhodes    schedule 09.05.2011

2 пробела — это соглашение для Ruby, на котором основан Ruby on Rails.

person Sean Tan    schedule 21.04.2010

С более практической точки зрения, если вы используете несколько ОС и редакторов (например, на работе я использовал RubyMine на Win XP и TextMate на своем MacBook дома, а один из наших разработчиков использует Notepad ++ и другой Aptana, и у нас даже есть тот, кто использует Netbeans , все эти редакторы интерпретируют вкладки по-разному — разные отступы, но 2 пробела — это всегда 2 пробела.Также, если вы когда-либо используете HAML или если вам нужно скопировать и вставить свой код на некоторые веб-сайты, которые пытаются раскрасить ваш код, 2 пробела необходимы.

person konung    schedule 21.04.2010
comment
В этой статье говорится об отступах на вашем экране — я говорю о совместном использовании кода и обеспечении наилучшей согласованности, вы не можете ожидать, что другие люди будут изменять настройки своих вкладок каждый раз, когда они открывают ваш код. - person konung; 26.07.2012
comment
Я полагаю, что вы можете спутать уровень отступа с выравниванием. Вот более подробное объяснение: movementarian.org/docs/whytabs - person Gerry; 26.07.2012
comment
Нет, не знаю - в том смысле, что многие редакторы полагаются на отступы в коде, чтобы визуально выровнять его на экране (что также зависит от используемого шрифта - обычно лучше всего использовать какой-то моноширинный шрифт - но это личное предпочтение). - person konung; 27.10.2012

Для HTML и CSS посмотрите здесь.

Я рекомендую вам всегда проверять отдельный язык программирования перед кодированием после того, как они используют разные стандарты.

Например, Python использует 1 вкладку (4 пробела), несмотря ни на что, в то время как для HTML и CSS рекомендуется использовать 2 пробела.

person TheCrazyProfessor    schedule 18.03.2018