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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.