Подтвердить что ты не робот

Проверка синтаксиса PHP в VIM

Я хотел бы знать, как можно проверить, действительно ли файл PHP действителен в VIM, не закрывая VIM каждый раз?

Спасибо

4b9b3361

Ответ 1

Вы можете выполнять команды оболочки в vim. Это то же самое, что вызывать php -l filename.php из оболочки:

:!php -l %

У меня есть это отображение в мой файл ~/.vim/after/ftplugin/php.vim, так что мне нужно только нажать F5:

map <F5> :!php -l %<CR>

Ответ 2

Используйте :make со следующими настройками php:

:set makeprg=php\ -l\ %
:set errorformat=%m\ in\ %f\ on\ line\ %l,%-GErrors\ parsing\ %f,%-G

Синтаксические ошибки будут отображаться в окне Quickfix. Вы можете открыть этот буфер с помощью :copen или :cope для краткости. Если вы хотите только открыть окно, только если в их ошибках используется :cwindow.

Вы можете использовать :cnext и :cprev для перемещения по списку quickfix для перехода к соответствующим ошибкам. Я предлагаю Тиму Папу отличный unimpared.vim плагин, чтобы сделать перемещение по списку так же просто, как [q и ]q.

Чтобы упростить рабочий процесс, я предлагаю такое сопоставление:

nnoremap <f5> :update<bar>make<bar>cwindow<cr>

Теперь вы можете просто нажать <f5>, и буфер будет обновлен (если необходимо), листером и любые ошибки появятся в окне быстрого исправления.

Чтобы сделать это немного более надежным, добавьте эти команды в ~/.vim/after/ftplugin/php.vim. Пример ~/.vim/after/ftplugin/php.vim

setlocal makeprg=php\ -l\ %
setlocal errorformat=%m\ in\ %f\ on\ line\ %l,%-GErrors\ parsing\ %f,%-G
nnoremap <buffer> <silent> <f5> :update<bar>sil! make<bar>cwindow<cr>

Для получения дополнительной информации:

:h quickfix
:h makeprg
:h errorformat

Ответ 4

Существует еще один плагин под названием vim-phpqa, который отмечает строку:

https://github.com/joonty/vim-phpqa

enter image description here

Ответ 5

Для подсветки синтаксиса (что иногда дает подсказки об ошибках) не все еще сохраненный файл (обычно черно-белый на vim) просто отправляет файл синтаксиса:

:source $VIMRUNTIME/syntax/[the syntaxfile].vim

Примеры

:source $VIMRUNTIME/syntax/sh.vim
:source $VIMRUNTIME/syntax/php.vim
:source $VIMRUNTIME/syntax/javascript.vim

Ответ 6

Вы должны попробовать плагин, например Neomake. Он покажет вам маркеры ошибок водостока для каждой ошибки синтаксиса PHP. Идите по линии, чтобы увидеть ошибку. Вы можете также связать его с детектором PHP Mess и PHP Stan, чтобы показать вам ошибки и возможные улучшения в вашем коде.

Это комбо очень мощное!

В случае, если вам интересно, я написал статью о том, как сделать Vim PHP IDE. Это в основном список необходимых плагинов, которые вы должны попробовать! Конечно, Ноомаке - часть этого.