2011-09-01 20 views

Respuesta

43

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> 
+5

Tenga en cuenta que esto validará el archivo guardado, por lo que si tiene cambios no guardados, no los verá. – Useless

+0

¿Podemos usar una clave diferente para mapear como: CTRL + P? – Tech4Wilco

+1

@Jimmy, creo que sería algo así como 'map :! Php -l% '. – gpojd

7

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 
+0

Cuando ejecuto este código, funciona pero deja el buffer completamente en blanco. –

+0

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? –

0

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 
0

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.