Completamente lista de ubicaciones de salida (LCL) creado por Syntastic así la memoria intermedia principal al utilizar: q,: q! o: wq! en VIM
Pregunta
Estoy usando el plugin de Syntastic. Tengo algunos archivos con algunos errores (cuidado) que no puedo cambiar. Cuando tengo un archivo abierto con mensajes de error, y salga del archivo (tampón) presionando: q, los mensajes de error son todavía visibles (otro buffer), así que tengo que presione:. Q dos veces para completamente salida al editar un archivo
Entonces, ¿cómo hacer de prensa que: q acaba de una vez con un archivo con un tampón que contenía mi archivo y otro buffer (lista de ubicaciones) que contiene errores Syntastic? He buscado un poco y el comando para cerrar la lista de ubicaciones es : LCL .
Cuando salgo de un tampón con: q, si la lista de ubicación para que el buffer está activo, quiero cerrarlo con la lista de ubicaciones dentro, llamando al: LCL. Estoy leyendo algunos autocmd BufLeave
y BufWinLeave
y tratando de crear una asignación para esto, pero No puedo saber la diferencia entre los dos. Alguien me puede ayudar?
Recordar, :w, :q, :q!, :wq
debe todo el trabajo según lo previsto.
Solución
A medida que el trabajo lcl incluso si no hay una ventana de error se puede asignar a LCL y q q
cnoremap q<cr> \|lcl\|q<cr>
Como se sugirió una abreviatura parece mejor
cabbrev q lcl\|q
(tenga en cuenta el \ antes |, sin que lo hace la abreviatura continuación, salga)
Otros consejos
Me doy cuenta de esta pregunta es antigua y que la respuesta fue aceptada hace algún tiempo. He intentado utilizar la respuesta aceptada, pero no parece que trabajar más.
Me hizo sin embargo encontrar una solución a esta cuestión , deben funcionar en otros a esto.
Básicamente, utilice una secuencia de comandos para comprobar si hay otras ventanas restantes se abren y si la última ventana que queda es una ubicación de la lista, dejar de fumar.
:autocmd WinEnter * if &buftype ==# 'quickfix' && winnr('$') == 1 | quit | endif
creo que esto puede no ser ideal, pero funciona bastante bien en el ínterin.