2011-03-11 9 views
5

¿Existe un script de Vim que periódicamente intente compilar/interpretar el código en el que estoy trabajando y resalta los errores de sintaxis? Me gustaría señalar que algo está mal entre estas líneas:Sintaxis de Vim/error de tiempo de compilación que resalta

int a = 42 
cout << a << endl; 

Tal cosa me ahorraría muchísimo tiempo. Principalmente estoy buscando un corrector de sintaxis Perl, pero también me interesarían los complementos similares para otros idiomas.

actualización: Otro error que me gustaría señalar:

int a == 42; 
cout << a << endl; 
+0

Es posible que desee llegar a donde ': make' hace lo que quiere y asignarle una clave, de modo que en lugar de" periódicamente ", tenga" cada vez que presiono "o algo así. Los errores en una ventana de vista previa no son exactamente lo mismo que resaltar, pero es una funcionalidad incorporada. (Para Perl, solo deberías establecer 'makeprg' en' perl -c'.) – Cascabel

+0

Utilicé Komodo de ActiveState por un tiempo. Enormemente impresionado con su sintaxis de señalar-fuera-errores-mientras-edición. La cosa es que no fue un gran aumento de productividad. El depurador estaba ordenado (particularmente al pasar por un script cgi en un servidor muy, muy lejano). – bobbogo

+0

que había hackeado una solución por mí mismo :) puede hacer referencia a [Obtener trabajo AsyncCommand con errormarker] [1] [1]: http://stackoverflow.com/q/7963021/108565 – yoco

Respuesta

6

Puede usar eclim: una vez que su servidor eclim esté configurado y en ejecución, puede usar el comando Vim :Validate para ejecutar una validación de código en su archivo.

Básicamente, usa la validación disponible en eclipse y la muestra en Vim/gVIm en la lista de ubicaciones. (Use :lopen)

Para su ejemplo, la lista de ubicaciones contiene:

test.cpp|1 col 11 error| Syntax error 
test.cpp|2 col 1 error| Syntax error 

(Col 11 corresponde a la ubicación de la ; falta)

Por defecto, la validación se ejecuta cada vez que se guarda un amortiguador.

La descripción del error no es muy clara, pero una vez que encuentra la línea con el error, generalmente detecta el error con bastante facilidad.

1

sangrado automático debe hacerlo. Cuando comienzas tu nueva línea con un nivel de sangrado adicional, probablemente significa que ingresaste a un nuevo bloque o que no terminaste un enunciado.

+0

Eso resolvería mi ejemplo, pero hay todo tipo de errores que encuentra un compilador, por ejemplo el que acabo de actualizar por respuesta. – Tim

Cuestiones relacionadas