Используем Табы для отступов, а не пробелы

Мы используем везде Tab для отступов.
Надо везде в редакторах выставить использование и проверить настройку, чтобы при нажатии Tab они не заменялись на пробелы.

в vim для этого в ~/.vimrc удалить/закомментировать строчку:
" set expandtab
" Настройка отображения Tab отступов = 4 пробела
set tabstop=4
set shiftwidth=4

В vim заменить каждые два пробела таб в начале строки:
:%s/\(^\s*\)\@<=\%x20\%x20/\t/g

В vim заменить каждые два пробела таб везде:
:%s/\%x20\%x20/\t/g

Поменять два пробела на tab во всех файлах в текущей директории и поддиректориях:
find . -name "*.php" -type f -exec vim -c '%s/\(^\s*\)\@<=\%x20\%x20/\t/g' -c 'xa' {} \;

Используем Tab потому что:

  1. Должен быть единый стандарт стиля в компании и мы выбрали Tabы.
  2. Таб используется чаще всего используется в проектах, которые мы используем: C/C++ (для систем умного дома), WordPress, mediawiki
  3. Ширину отображения таба можно настроить как удобно каждому.
  4. Семантичность ( https://habr.com/post/308974/#comment_9783180 )

Ссылки по теме:

  1. https://habr.com/post/308974/#comment_9783180 - про семантичность комментарий на хабре
  2. https://habr.com/post/118208/ - хорошая статья на эту тему на хабре
  3. https://habr.com/post/83528/ - пользователи хабра больше используют табы
  4. https://www.youtube.com/watch?v=AXLoRpKnK8U - Табы и пробелы (Кремниевая долина, S03E06) - девушке не дали за то, что она использует пробелы

Отформатировать отступы автоматически

В vim в нормально режиме ввести команду: 1GVG=

Чтобы отформатировать отступы во всех файлах:
find . -name "*.php" -type f -exec vim -c 'normal! 1GVG=' -c 'xa' {} \;

В .vimrc обязательно указать:
syntax on
filetype plugin indent on
Иначе текст ниже ведет в vim к ошибке в форматировании и вторая строка будет начинаться в том месте где *
func('controller/*d.php');
$data['payment_modules'] = array();

Удаление лишних пробелов и табов в конце строк

В vim:
:%s/[[:space:]]\+$//g

Во всех php файлах:
find . -name "*.php" -type f -exec vim -c '%s/[[:space:]]\+$//g' -c 'xa' {} \;