Форматирование PHP-кода в Vim
-
21-08-2019 - |
Вопрос
В настоящее время я использую Vim как облегченную среду разработки.У меня есть плагины NERDTree, bufexplorer, supertab и ctags, которые делают почти все, что я хочу.Единственное, чего мне не хватает, - это автоматического форматирования кода.
Я работаю с некоторым беспорядочным PHP-кодом, который имеет непоследовательные отступы и форматирование кода, в идеале я мог бы выделить код, который я хочу отформатировать (целые файлы тоже подошли бы), и запустить команду для приведения его в порядок.
У кого-нибудь есть хорошее решение для этой работы в Vim?
Решение
Быстрый способ исправить отступы PHP в vim - визуально выделить строки, с которыми вы хотите работать, используя сдвиг-v, а затем нажмите равно (=) для запуска автоматического форматирования.
Что касается других проблем с форматированием, вы, вероятно, рассматриваете возможность использования некоторого поиска по регулярным выражениям и замены, например :%s/^M/\r/g
(это ctrl-V ctrl-m, не каре-M) для исправления окончаний строк
Другие советы
Войдите в обычный режим в vim, а затем введите
1GVG=
Формат в стиле PSR-2
Для нового стандарта Руководство по стилю кодирования PSR-2 используйте PHP-CS-Фиксаж.
Есть плагин Vim: Vim-php-cs-исправитель
Как установить:
Установить PHP-CS-Fixer
(глобально с Composer
):
composer global require friendsofphp/php-cs-fixer
Затем добавьте плагин Vim (Pathogen
):
cd ~/.vim/bundle
git clone git@github.com:stephpy/vim-php-cs-fixer.git
Перезапустите Vim.
Отображение по умолчанию:
<leader>pcd " For directory
<leader>pcf " For flie
Существует плагин vim, который позволяет форматировать ваш код из vim.Он называется vim-autoformat, и вы можете прочитать о нем и скачать его здесь:
https://github.com/Chiel92/vim-autoformat
Он интегрирует внешние программы форматирования кода в vim.Когда этот плагин установлен, вам нужно только установить внешний форматировщик кода, чтобы все заработало "из коробки".Он поддерживает php-форматировщик phpCB, который является лучшим php-форматером, который я видел до сих пор.
Обновить: phpCB больше не поддерживается из-за нарушения кода.Однако файл indentfile vim всегда используется в качестве запасного варианта, позволяя вам, по крайней мере, делать отступы в вашем коде, когда нет средства форматирования.
В веб - сайт vim ориентироваться в нем не так-то просто, но там в изобилии представлен центр жевательной нуги.
Например, я нашел этот php скрипт для создания отступов там.Дайте ему попробовать.