Me gustaría saber cómo si es posible validar si un archivo PHP es válido en VIM sin cerrar VIM cada vez?Validar la sintaxis de PHP en VIM
Gracias
Me gustaría saber cómo si es posible validar si un archivo PHP es válido en VIM sin cerrar VIM cada vez?Validar la sintaxis de PHP en VIM
Gracias
Puede ejecutar comandos de shell en vim. Esto es lo mismo que llamar php -l filename.php
de la cáscara:
:!php -l %
He este mapeado en mi archivo ~/.vim/after/ftplugin/php.vim
por lo que sólo tengo que pulsar F5:
map <F5> :!php -l %<CR>
Trate http://www.vim.org/scripts/script.php?script_id=2736 es muy buena.
gracias Voy a echar un vistazo – Tech4Wilco
me parece complicado – Tech4Wilco
Funcionó sin problemas para mí. –
Uso :make
con los siguientes valores específicos php:
:set makeprg=php\ -l\ %
:set errorformat=%m\ in\ %f\ on\ line\ %l,%-GErrors\ parsing\ %f,%-G
Sus errores de sintaxis estarán en la ventana Quickfix. Puede abrir este búfer con :copen
o :cope
para abreviar. Si solo desea abrir la ventana solo si hay errores, use :cwindow
.
Puede usar :cnext
y :cprev
para desplazarse por la lista de soluciones rápidas para saltar a los errores correspondientes. Sugiero el excelente plugin de unimpared.vim de Tim Pope para hacer que moverse por la lista sea tan simple como [q
y ]q
.
Para simplificar el flujo de trabajo sugiero un mapeo como éste:
nnoremap <f5> :update<bar>make<bar>cwindow<cr>
Ahora sólo puede golpear <f5>
y la memoria intermedia se actualizará (si es necesario), linted, y cualquier error aparecerá en el quickfix ventana.
Para hacer esto un poco más robusto, agregue estos comandos al ~/.vim/after/ftplugin/php.vim
. Ejemplo ~/.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>
Para más información:
:h quickfix
:h makeprg
:h errorformat
Cuando ejecuto este código, funciona pero deja el buffer completamente en blanco. –
La asignación provista solo escribirá el búfer * si es necesario), borrará a través del makeprg y luego mostrará la ventana de revisión si hay errores. No realiza ningún cambio en el búfer de ninguna manera que no sea escribirlo en el disco. ¿Hay alguna posibilidad de que esté mirando una ventana de solución rápida en blanco? –
Para comprobar la sintaxis de PHP sin tener que guardar primero que puede utilizar:
mapa: w!php -l
Hay otro plugin llamado vim-phpqa
que marca la línea:
Por tan sólo resaltado de sintaxis (lo que a veces da pistas acerca de los errores) una archivo aún no guardado (generalmente en blanco y negro en vim) solo fuente el archivo de sintaxis:
:source $VIMRUNTIME/syntax/[the syntaxfile].vim
Ejemplos
:source $VIMRUNTIME/syntax/sh.vim
:source $VIMRUNTIME/syntax/php.vim
:source $VIMRUNTIME/syntax/javascript.vim
usted debe tratar de un plugin como Neomake. Le mostrará los marcadores de error de canal para cada error de sintaxis de PHP. Vaya a la línea para ver el error en sí. También puede vincularlo al PHP Mess detector y PHP Stan para mostrarle errores y posibles mejoras en su código.
¡Este combo es muy poderoso!
En caso de que esté interesado escribí un artículo sobre cómo hacer un Vim PHP IDE. ¡Esta es básicamente una lista de complementos esenciales que deberías probar! Por supuesto, Neomake es parte de eso.
Tenga en cuenta que esto validará el archivo guardado, por lo que si tiene cambios no guardados, no los verá. – Useless
¿Podemos usar una clave diferente para mapear como: CTRL + P? – Tech4Wilco
@Jimmy, creo que sería algo así como 'map:! Php -l% '. –
gpojd