2011-06-15 32 views
25

Cuando se trata de conflictos de combinación, es común que >>>>>> y ====== insertados por DCVS sean sintácticamente incorrectos para el archivo en el que estoy y que aparecen resaltados en rojo. Cuando se trata de conflictos de combinación, sería útil tener comandos para saltar a estos errores. Cuando escribo :cnext obtengo el mensaje "Sin errores". Estos son conflictos de fusión Mercurial, por lo que no puedo usar Fugitive, pero en general prefiero editar conflictos de fusión a mano de todos modos.Saltar al siguiente error/código resaltado en rojo

¿Hay alguna manera de pasar al siguiente error de sintaxis en el archivo? Creo que estos errores están dictados por el archivo de resaltado de sintaxis.

Respuesta

35

Puede usar :lopen para abrir la ventana que contiene líneas de error/advertencia. Después de eso, navega hacia cada uno de ellos.

La respuesta real es que se puede utilizar :lnext para saltar al siguiente error o :lprev o ]l y [l (esos son Ls minúsculas) si tiene vim-unimpaired, que se hacer, porque no deberías usar Vim sin eso.

Esto no en realidad salta al siguiente grupo de texto resaltado rojo/error, pero saltará a lo que su plugin de sintaxis indique que es un error (y completará la lista de ubicaciones). Es imposible en Vim para saltar a un grupo de realce específico, porque nadie se ha molestado en averiguar cómo.

El complemento SRDispHiGrp se acerca, pero si no se puede decir por el nombre, es demasiado convulsionado y confuso para uso humano.

1

Basado en a question aquí en StackOverflow, este plugin called SrchRplcHiGrp le ayudará con su misión.

+0

Parece que ese complemento solo le permite buscar caracteres dentro de un grupo de resaltado, no solo un grupo de resaltado. También se ve muy confuso. –

11

Creo que estaba en el camino correcto con :cnext.

:cnext y :cprevious son comandos de Vim QuickFix; puede aprovecharlos mediante el uso de un complemento de validación de código que utiliza el modo QuickFix, como pyflakes.vim para Python, y jslint.vim/jshint.vim para JavaScript.

Esto dará como resultado que los errores de sintaxis se marquen con líneas rojas onduladas, en contraste con el resaltado de error de sintaxis roja sólida que creo que está viendo. Debería poder usar :cnext y :cprevious para saltear los errores marcados siguiente y anterior.

Cuestiones relacionadas