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

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

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

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

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

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

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

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

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

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

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

M-x customize-variable tab-width

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

у меня отступ 2 пробела — монитор маленький.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Табы. Прыгать по отступам легко.

Отображаю их в 4 пробела.

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

>Табы. Прыгать по отступам легко.

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

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

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

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

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

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

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

> 1. Нормальный редактор далеко не всегда есть под рукой.

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

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

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

алсо :set expandab tabstop=4 textwidth=80

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

а вам не влом по 4 раза пробел нажимать? я использую 2 пробела

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

📎📎📎📎📎📎📎📎📎📎