在 VIM 中验证 PHP 语法

2022-08-30 12:05:49

我想知道是否可以在不每次关闭VIM的情况下验证PHP文件在VIM中是否有效?

谢谢


答案 1

您可以在 vim 中执行 shell 命令。这与从 shell 调用相同:php -l filename.php

:!php -l %

我已将其映射到我的文件中,因此我只需要按F5:~/.vim/after/ftplugin/php.vim

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

答案 2

与以下 php 特定设置一起使用::make

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

您的语法错误将出现在“快速修复”窗口中。您可以使用或简称打开此缓冲区。如果只想在出现错误时才打开窗口,请使用 。:copen:cope:cwindow

您可以使用 和 在快速修复列表中移动以跳转到相应的错误。我建议Tim Pope的优秀unimpared.vim插件,使列表的移动像和一样简单。:cnext:cprev[q]q

为了简化工作流程,我建议进行如下映射:

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

现在,您只需点击,缓冲区将被更新(如有必要),linted,并且任何错误都将出现在quickfix窗口中。<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

推荐