LINUX.ORG.RU

Табы или пробелы? (ну и вопрос к этому)


0

0

Чем принято делать отступы в исходниках? Что считается хорошим стилем: 4/8/? пробелов или табуляция?

А ещё вопрос такой: а как бы настроить отступы единообразно для всех режимов emacs? А то как я сейчас посмотрю, в разных режимах по умолчанию всё по-разному. Где-то 2/4 пробела, где-то табуляция. Чую, есть какая-то общая настройка, но найти не получилось.

anonymous

Табы, составляющие 8 пробелов. Сейчас придут еретики, которые скажут другое - не верь им!!1111

tailgunner ★★★★★
()

2/4/8 пробелов. Таб заменяется на пробел. Табы в исходниках - плохо, про это в инете даже писали:)

anonymous
()

самое главное, это избежать ереси, когда делают отступы табами, но табы настраивают не на 8, а на 4.

dilmah ★★★★★
()
Ответ на: комментарий от ott

4 пробела стоит. Но тот же c-mode методично вставляет табы.

anonymous
()

Раз в несколько мес-в эта тема тут подымается.

Вообще говоря, дело привычки. Лично я предпочитаю 3 пробела.

Не понимаю людей, усложняющих себе жизнь табами. Пользование одновременно несколькими символами, одинаково выглядящими на экране ИМХО -- некий утонченный мазохизм. Особенно песТня -- мышкой это дело копировать.

Единственный разумный аргумент стронников табов -- "логическая" разметка vs. "физическая" -- на мой взгляд не выдерживает критики: сколько пробелов автор кода положил, столько и должно быть.

Die-Hard ★★★★★
()

Основной смысл табов -- каждый программист может настроить свой редактор под удобное ему _отображение_ отступов. Однако я последнее время склоняюсь к мысли, что отступы надо делать пробелами. Так как внутри одного уровня отступа если хочешь сделать подотступ (например если длинная функция и аргументы переносишь на другую строку), то его уже надо делать пробелами, а единственный редактор, который делает это на автомате это kate. В результате код может выглядеть некрасиво при разных настройках табов в разных редакторах.

Reset ★★★★★
()
Ответ на: комментарий от wfrr

Прозреваю быдлокод. В уровнем отступа в 4 пробела нормально на любом мониторе вмещается код с уровнем вложенности <= 4. Если у тебя больше уровней вложенности, то надо что-то с этим делать.

Reset ★★★★★
()
Ответ на: комментарий от Die-Hard

>сколько пробелов автор кода положил, столько и должно быть
Ну вот это-то как раз понятно. Я для себя выбираю.

Всем: так что с Emacs'ом? Для каждого режима отступы отдельно настраивать?

anonymous
()


только пробелы. 4 шт. за использование табов расстреливать без суда и следствия по законам военного времени. за использование кол-ва пробелов, отличного от 4х, ссылать на Колыму.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от dilmah

> самое главное, это избежать ереси, когда делают отступы табами, но табы настраивают не на 8, а на 4.

это ерунда. вот когда используют одновременно и табы и пробелы в одной строке - вот это уже действительно ересь достойная линча.

// wbr

klalafuda ★☆☆
()

/me аккуратно записывает выявленных еретиков

tailgunner ★★★★★
()

2 или 4 пробела

aydar ★★★★★
()
Ответ на: комментарий от Reset

>В уровнем отступа в 4 пробела нормально на любом мониторе вмещается код с уровнем вложенности <= 4. Если у тебя больше уровней вложенности, то надо что-то с этим делать.

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

dimon555 ★★★★★
()
Ответ на: комментарий от klalafuda

> за использование кол-ва пробелов, отличного от 4х, ссылать на Колыму.

+500

anonymous
()
Ответ на: комментарий от Die-Hard

> Не понимаю людей, усложняющих себе жизнь табами.

Когда у тебя с одним кодом работают несколько людей, и у всех не только разные убеждения о том, каким должно быть левое поле (от 2 до 8 позиций), но ещё и действительно разного размера консоли - тогда ты посмотришь на табуляцию как на панацею.

И такой код одинаково хорошо выглядит с любыми настройками.

Одновременно несколькими символами не пользуюсь. tab использую только в левом поле; в левом поле использую только tab.

Не понимаю людей, завязывающих создаваемый ими код на свой личный размер отступа. Имхо это намеренное придумывание неудобств читателю.

Вариант с табуляциями всегда любой желающий всегда сможет привести к своему любимому стилю. Обратное невозможно.

Проблемы возникают как раз когда импортный код использует кашу пробелов и табуляций (часто получающуюся из-за слишком умных текстовых редакторов, заменяющих N пробелов на одну табуляцию), когда это N не совпадает с моим tabsize. Собственно имхо это единственная проблема...

PS. У меня тоже с самого начала было 3 пробела.

PPS. навигация в текстовом редакторе по табам гораздо проще. С пробелами курсор (и текст) всё время норовит встать на запрещённую (некратную indentstep) позицию.

alexsaa
()
Ответ на: комментарий от tailgunner

>Табы, составляющие 8 пробелов

PEP8 не читал, да? ;)

Для python есть вполне конкретная рекомендация: 4 пробела.

Davidov ★★★★
()
Ответ на: комментарий от Davidov

> Для python есть вполне конкретная рекомендация: 4 пробела.

Ладно, Гвидо тоже сожжем как еретика. Всё равно Py3k уже вышел %)

tailgunner ★★★★★
()
Ответ на: комментарий от alexsaa

> И такой код одинаково хорошо выглядит с любыми настройками.

Кстати, неодинаково. Лучше всего - именно на "родной" настройке ширины таба. Но в остальном да, таб позволяет компромисс, который недостижим пробелами.

tailgunner ★★★★★
()
Ответ на: комментарий от anonymous

> Табы в исходниках - плохо, про это в инете даже писали

Ссылочку плиз. Хочу просветиться. Пока меня не сожгли. :)

alexsaa
()

не принимаю патчи с отступами в виде пробелов. Только табы.

Торвальдс.

anonymous
()

Ой! А я сегодня какраз чуть футболку на себе не поджёг когда газ на плите зажигал. Видать это был знак свыше, что пора переходить с табов на пробелы...

Deleted
()
Ответ на: комментарий от Davidov

>С нормальным редактором - не проблема.

1. Нормальный редактор далеко не всегда есть под рукой.
2. Нормальные редакторы часто слишком долго запускаются :D

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

3. В нормальном редакторе дела нет до того, пробелы это или табы. Так что табы - кошернее :) Да и файл меньше весит...

KRoN73 ★★★★★
()

Для C табы (K&R, Linux kernel guidelines), для питона 4 пробела (PEP8), для руби 2 (традиционно AFAIK). Для всего остального предпочитаю табы по аналогии с C, но в последнее время начинаю склоняться к 4 пробелам (особенно в конфигах и языках разметки.)

xio
()
Ответ на: комментарий от anonymous

>а вам не влом по 4 раза пробел нажимать?

vim какбы и один раз таб

dimon555 ★★★★★
()
Ответ на: комментарий от KRoN73

>>Нормальный редактор [...] vi

> 4.2

proof | gtfo

anonymous
()

1 (один) пробел. все остальные просто засирают место на экране.

generatorglukoff ★★
()
Ответ на: комментарий от Deleted

> А я сегодня какраз чуть футболку на себе не поджёг когда газ на плите зажигал. Видать это был знак свыше, что пора переходить с табов на пробелы...

Это было предупреждение - еретики, которые смеют пользоваться пробелами, сгорят в аду.

tailgunner ★★★★★
()

Или табы, или пробелы. Но не вместе.

smh ★★★
()
Ответ на: комментарий от alexsaa

> ...Когда у тебя с одним кодом работают несколько людей, и у всех не только разные убеждения о том, каким должно быть левое поле (от 2 до 8 позиций), но ещё и действительно разного размера консоли ...

Я -- тот несчастный, что много лет это на себе испытывает. Много лет девелоплю я проект, главный папа которого -- фанат табов.

Поверь, все зло идет именно от табов. Постоянно (в основном по причине копирования мышкой, но не только) табы меняются на пробелы (и наоборот), и все встаёт раком.

>Одновременно несколькими символами не пользуюсь. tab использую только в левом поле; в левом поле использую только tab.

1. Во время предыдущей дискуссии на эту тему кучу примеров привели, когда табы ну никак не канают.

2. Без пробелов ты все равно не обойдешься -- следовательно, именно табы мастдай.

> Не понимаю людей, завязывающих создаваемый ими код на свой личный размер отступа. Имхо это намеренное придумывание неудобств читателю.

Ну, если ты в Ворде код лабаешь -- возможно, ты и прав...

На экране обычно 80 символов (для комфортного чтения). Средняя длина идентификатора -- вещь сугубо интимная (обычно она обратно коррелирует с кол-вом комментариев). Поэтому величина отступа обычно (обратно) коррелирует с длиной идентификатора и (прямо) коррелирует с модульностью, принятыми данным автором...

> Вариант с табуляциями всегда любой желающий всегда сможет привести к своему любимому стилю. Обратное невозможно.

ИМХО наоборот. Аргументацию см. выше.

> Проблемы возникают как раз когда импортный код использует кашу пробелов и табуляций ...

За такое -- немедленнно 10 лет расстрела вонючими пулями!

> ...навигация в текстовом редакторе по табам гораздо проще

Монопенисуально. Любой продвинутый редактор настраивается на N пробелов еквивалентно табам.

Die-Hard ★★★★★
()
Ответ на: комментарий от Die-Hard

>>Монопенисуально. Любой продвинутый редактор настраивается на N пробелов еквивалентно табам.

это даже mcedit умеет

alex_custov ★★★★★
()
Ответ на: комментарий от Die-Hard

>Поверь, все зло идет именно от табов. Постоянно (в основном по причине копирования мышкой, но не только) табы меняются на пробелы (и наоборот), и все встаёт раком.

Всё зло от тех, кто мышку в консоли для копирования использует :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

> Всё зло от тех, кто мышку в консоли для копирования использует :)

О! С этого места подробнее -- для чего еще использовать мышку, кроме как для быстрого и удобного копирования?

О да, вспоминаю ужасы ^c ^v ^v ^c ^b,d'd итд... Мы, надеюсь, обсуждаем _разумные_ ОСи, в которых копирование / вставка делаются одним движением? :-)

Die-Hard ★★★★★
()
Ответ на: комментарий от Die-Hard

Странный у тебя инструментарий. Навигацию по N позиций он делать умеет, а вот понять, что таб и пробел - вещи разные - не может.

Я пользуюсь eclipse; изредка vim; diff. Проблемы с преобразованием табов бывают только при копипасте мышью строк с diff'ом из консоли. Не считаю, что это правильный путь работы с кодом, поэтому более чем для 2-3 строк это не делаю. Да и eclipse им сам indent делает.

Предыдущей дискуссии (увы?) не застал.

А в твоём стиле, если есть несколько разработчиков, то разные фрагменты имеют разный шаг отступа? А как они потом работают с кодом друг друга?

alexsaa
()
Ответ на: комментарий от alexsaa

> Странный у тебя инструментарий. Навигацию по N позиций он делать умеет, а вот понять, что таб и пробел - вещи разные - не может.

Отнюдь!

Инструментарий -- оно глупая прогорамма. А разумный фидбэк я предпочитаю сам контролировать, в том числе различая табы и пробелы...

> А в твоём стиле, если есть несколько разработчиков, то разные фрагменты имеют разный шаг отступа? А как они потом работают с кодом друг друга?

Можно договориться. всего лишь...

Но вокруг табов не договоришься - они ж не видны на мониторе, то ли табы, то ли пробелы...

:-)

Die-Hard ★★★★★
()
Ответ на: комментарий от Die-Hard

>О да, вспоминаю ужасы ^c ^v ^v ^c ^b,d'd итд...

копирование текста через визуальное выделение и с последующей вставкой в желаемый буфер (и в нужное место) в десятки раз превосходит манипуляции с мышкой.

>Но вокруг табов не договоришься - они ж не видны на мониторе, то ли табы, то ли пробелы...

текстовые редакторы имеют возможность подсветки табов или пробелов.

складывается впечатление что для написания кода вы используете исключительно нотпад.ехе

// я лично использую 0 пробелов и 0 табов.

anonymous
()
Ответ на: комментарий от xio

>в последнее время начинаю склоняться к 4 пробелам (особенно в конфигах и языках разметки.)
>языках разметки


Это что б врагам больше скачивать что ли? :)

Deleted
()
Ответ на: комментарий от Die-Hard

>Можно договориться. всего лишь...

>Но вокруг табов не договоришься - они ж не видны на мониторе, то ли табы, то ли пробелы...

Как раз наоборот, один хочет отступ в 4 пробела, другой в 3, третий в 2, четвертый в один, а еще, кадр, в 0 - договоритесь :)

А вот по поводу табов в этом треде у их использующих только одно желание - один таб (а не 2,3,4,...)

Сколько кода видел, там где используют пробелы, всегда попадаются кривые отступы - пробелы считать тяжело, особенно после копипаста. А вот если таб пропущен - сразу видно. Кстати, сам табы использую только для отступа с начала строки до первого не-пробела, далее красивое форматирование пробелами - чтобы при любой ширине таба было красиво и самое главное, понятно.

anonymous
()

Неужели удобно стирать отступ в 4 пробела скажем? А если скажем отступ блока кода + отступ для того, чтобы параметры были друг под другом. Уже требуется редактор, которые будет анализировать код, а не все это умеют.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.