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 :makey la lista de soluciones rápidas.
¿Qué nos hace usar el uso :make?
El uso le :makepermite 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 :makeejecutará 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 makecomando predeterminado que ejecuta a Makefile. Sin embargo, puede cambiar su a 'makeprg'través del :compilercomando o configurarlo directamente.
También puede pasar argumentos adicionales a :make. p.ej:make clean
Nota: la ejecución :makea 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 :makesu 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/ :cprevpara pasar al elemento siguiente / anterior
:ccimprimir en la parte inferior el error actual o :cc 3mostrar 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 :makeautomática y silenciosa?
Puedes hacer esto con un lugar :autocmdcomo 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 :cwindowsi hay algún error presente.
Nota: Debe ser más específico con ese patrón de archivo en el BufWritePostautocmd 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
:maketrabajos 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.shsea 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 :makey 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