2010-03-12 21 views
12

Al ejecutar: make from vim, una vez que se completa la copia, automáticamente salta a un archivo con errores. ¿Hay una manera de evitar estovim: hacer saltos automáticos al primer archivo con el error

EDITAR

Esto se usecase que quiero lograr Quiero: hacer ejecutar a continuación, lista rápida para abrir, pero el archivo actual, que estoy trabajando en no debe ser cambiado a el que tiene errores

con la configuración predeterminada después: hacer lista rápida ejecución y abre el archivo actual también cambia

Respuesta

13

Puede ejecutar :make! | copen, que debe colocar el cursor en la lista de soluciones rápidas en lugar de cambiar el búfer en uso. Puedes hacerlo aún más fácil al poner command Mymake make! | copen en tu .vimrc, por lo que solo tienes que ejecutar :Mymake para hacerlo.

Tenga en cuenta que al seleccionar errores de la lista de arreglos rápidos, desplazará un búfer con el archivo ya abierto en lugar de cambiar la ventana actual, si es posible, y puede abrir los archivos en ventanas nuevas con <C-w> Enter.

+0

Me sorprende que esto haya sido aceptado, aunque, por supuesto, 'copen' por definición activa la lista de errores, si': make! 'Cambia el archivo abierto, igual habrá cambiado. – Cascabel

+1

@Jefromi No sé a qué te refieres. Su propia respuesta dice que ': make!' Does _not_ no cambia el archivo abierto. –

21

a partir de los documentos:

 
    7. If [!] is not given the first error is jumped to. 

Por lo tanto, solo invoca como :make!.

+0

incluso con esta opción saltó al archivo. –

+0

Acabo de probar en vim 7.1 usando ': make!' No saltó al primer error, todavía estaba en el mismo lugar en el archivo donde lo abrí - el error estaba en un archivo diferente – stefanB

+0

¿Hay alguna forma de configurarlo? para revertir el comportamiento normal? Entonces: make hace qué: make! normalmente lo hace y viceversa? Idealmente a través de varias funciones quickfix como: grep,: Ack,: Ag. – William

1

Puede que no sea la solución más limpia, pero establecer el formato de error en una cadena vacía debería ser el truco, es decir.

:set errorformat="" 

Eso debería evitar que coincida con las cadenas de error del compilador.

+0

Esto me da el mensaje de error "E378: 'errorformat' no contiene ningún patrón". Sin embargo, establecerlo en algo que no concuerda (usé "!" Como una prueba rápida ahora) parece funcionar. –

Cuestiones relacionadas