Ars Longa, Vita Brevis

Простое решение проблемы смешанного форматирования

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

Есть много аргументов как за использование табуляции, так и против. Тем не менее, при использовании табуляции возникают проблемы, если у человека, редактирующего впоследствии код, редактор сконфигурирован расширять табуляцию другим количеством пробелов. В результате в некоторых строках для отступах будет использоваться табуляция, в некоторых — пробелы или смесь из пробелов и табуляции. При просмотре в другом редакторе такой код может выглядеть просто ужасно.

К счастью, в Linux проблема решается очень просто (причем как для замены табуляции пробелами, так и наоборот).

Рассмотрим два случая. В обоих случаях будем полагать, что нам нужно произвести глобальную замену во всех файлах с расширением PHP.

Случай 1. Замена табуляций на пробелы.

Расширение табуляции до четырёх пробелов:

[-]
View Code Bash
find . -name "*.php" -type f -print0 | xargs -0 -I {} sh -c 'expand -t 4 "{}" | cat > "{}"'

Расширение табуляции до восьми пробелов:

[-]
View Code Bash
find . -name "*.php" -type f -print0 | xargs -0 -I {} sh -c 'expand -t 8 "{}" | cat > "{}"'

Расширение табуляции до восьми пробелов, не затрагивая символы табуляции, находящиеся после пробелов:

[-]
View Code Bash
find . -name "*.php" -type f -print0 | xargs -0 -I {} sh -c 'expand -t 8 -i "{}" | cat > "{}"'

Случай 2. Замена пробелов на табуляцию.

Установка размера табуляции в 8 пробелов

[-]
View Code Bash
find . -name "*.php" -type f -print0 | xargs -0 -I {} sh -c 'unexpand -t 8 "{}" | cat > "{}"'

Установка размера табуляции в 4 пробела

[-]
View Code Bash
find . -name "*.php" -type f -print0 | xargs -0 -I {} sh -c 'unexpand -t 4 "{}" | cat > "{}"'

Установка размера табуляции в 4 пробела с заменой только начальных пробелов

[-]
View Code Bash
find . -name "*.php" -type f -print0 | xargs -0 -I {} sh -c 'unexpand -t 4 --furst-only "{}" | cat > "{}"'

Кстати, очень интересно замечание Линуса Торвальдса:

Tabs are 8 characters, and thus indentations are also 8 characters. There are heretic movements that try to make indentations 4 (or even 2!) characters deep, and that is akin to trying to define the value of PI to be 3.

Комментарии к статье "Простой способ глобальной замены табуляции на пробелы или наоборот" »

К статье "Простой способ глобальной замены табуляции на пробелы или наоборот" комментариев нет. Может быть, Вы хотите прокомментировать статью?

RSS лента комментариев к этой записи. TrackBack URL

Оставить комментарий к записи "Простой способ глобальной замены табуляции на пробелы или наоборот"

Изображения должны быть включены!

XHTML: Вы можете использовать эти теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Оставляя комментарий, Вы выражаете своё согласие с Правилами комментирования.

Подписаться, не комментируя