La respuesta a su pregunta directa es tal como lo publicó @EvergreenTree. Sin embargo, siento que te falta alguna herramienta incorporada de Vim para construir / compilar / linting proyectos. Lo más notable :make
y la lista de soluciones rápidas.
¿Qué nos hace usar el uso :make
?
El uso le :make
permite recopilar sus errores en una lista conocida como la lista de soluciones rápidas. Usando la solución rápida, puede navegar entre los errores en sus archivos, por lo que salta directamente a donde el compilador dice que el error es (¿útil, verdad?).
:hacer
Correr :make
ejecutará el programa make, 'makeprg'
. Luego analice la salida con 'errorformat'
y ponga cada entrada en la lista de soluciones rápidas.
Por lo general, 'makeprg'
el make
comando predeterminado que ejecuta a Makefile
. Sin embargo, puede cambiar su a 'makeprg'
través del :compiler
comando o configurarlo directamente.
También puede pasar argumentos adicionales a :make
. p.ej:make clean
Nota: la ejecución :make
a menudo mostrará el resultado del comando en la parte inferior de la pantalla con un mensaje que le pide que presione enter. Simplemente presione Intro ya que toda la salida estará disponible en la lista de soluciones rápidas. Puede suprimir esto mediante :silent
, por ejemplo :silent make
.
Un comando personalizado común para una marca silenciosa es:
command -nargs=* -bar Smake silent make <args> <bar> cwindow
lista de soluciones rápidas
Después de ejecutar :make
su lista de soluciones rápidas, se guardará la salida del compilador.
Use el siguiente comando para navegar por la lista de soluciones rápidas.
:copen
para abrir la ventana de revisión rápida
:cclose
para cerrar la ventana de revisión rápida
:cnext
/ :cprev
para pasar al elemento siguiente / anterior
:cc
imprimir en la parte inferior el error actual o :cc 3
mostrar un error específico en este ejemplo 3
Personalmente, uso el complemento intacto de Tim Pope para navegar por la lista de soluciones rápidas.
¿Qué pasa con la ejecución :make
automática y silenciosa?
Puedes hacer esto con un lugar :autocmd
como tú.
augroup auto_make
autocmd!
autocmd BufWritePost * silent make
autocmd QuickFixCmdPost *make* cwindow
augroup END
Como beneficio adicional, agregué al abrir la ventana de revisión rápida a través de :cwindow
si hay algún error presente.
Nota: Debe ser más específico con ese patrón de archivo en el BufWritePost
autocmd para que no se generen archivos no relacionados.
¿Hay aún más?
Esto está usando solo algunos de los comandos incorporados de Vim más algunos autocmd para convencer. Por supuesto, hay complementos y herramientas que pueden ayudarte
- Dispatch.vim se puede usar para ejecutar
:make
trabajos de forma asincrónica.
- Syntax plugin fantástico comprueba el archivo después
:write
.
- Ale.vim (Asynchronous Lint Engine) es un complemento para proporcionar linting en NeoVim y Vim 8 mientras edita sus archivos de texto.
- Unimpaired.vim facilita la administración de la lista de soluciones rápidas.
- Llanos viejos Makefiles. A menos que
./script.sh
sea muy complicado, es posible que desee considerar el uso de make. Puede escalar para hacer más tareas más tarde y es una herramienta de construcción común.
- Puede usar Vim Awesome para buscar más complementos que puedan ayudar.
Conclusión
Personalmente, integro :make
y la solución rápida en mi propio flujo de trabajo. Creo que capturar el resultado de su proceso de compilación y capturar los errores para que valga la pena la inversión. Como una ventaja adicional, posiblemente te sientas más cómodo con la lista de soluciones rápidas y puedas usar la lista para otras aplicaciones como :grep
.
Para más ayuda ver:
:h :make
:h quickfix
:h 'makeprg'
:h 'errorformat'
:h :compiler
:h :copen
:h :cwindow
:h :cnext
:h :cc