Мы используем везде 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 потому что:
- Должен быть единый стандарт стиля в компании и мы выбрали Tabы.
- Таб используется чаще всего используется в проектах, которые мы используем: C/C++ (для систем умного дома), WordPress, mediawiki
- Ширину отображения таба можно настроить как удобно каждому.
- Семантичность ( https://habr.com/post/308974/#comment_9783180 )
Ссылки по теме:
- https://habr.com/post/308974/#comment_9783180 - про семантичность комментарий на хабре
- https://habr.com/post/118208/ - хорошая статья на эту тему на хабре
- https://habr.com/post/83528/ - пользователи хабра больше используют табы
- 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' {} \;