Utilizo gVim en Windows para editar mi código (principalmente C++). Yo uso: make in gVim para compilar el proyecto, pero esta es una operación de bloqueo, que me impide usar gVim hasta que se complete la compilación. ¿Cómo puedo hacer: realizar de forma asíncrona y aún obtener los beneficios de volver a leer los errores en Vim y saltar a los errores en el código fuente? Puntos de bonificación si puedo ver el proceso de creación en tiempo real. En este momento the: make redirige la salida a un archivo, por lo tanto, no puedo ver el progreso de make.En ejecución: make from gVim en Background
Respuesta
Lo que hago es
:!gvim -c 'MyMake'
(donde MyMake es el comando personalizado que puede cambiar a dir caso, formular y Copen 20.)
y estoy haciendo mi trabajo, mientras que la acumulación va en la otra ventana.
Otra opción:
puede redirigir progresar a algún archivo de la cáscara o dentro de vim (: hacer &). Y luego mediante el uso de
:cfile make_result_file
:cw
or
:copen 20
lograr el mismo resultado que el que tendría que utilizar: hacer
¿Podría detallar su comando MyMake? Intento hacer algo similar con gvim en Windows y msbuild (es decir, abrir gvim window, make y open output externos) pero no puedo obtener el comando correcto. – rem45acp
me gustaría utilizar métodos incorporados de su sistema operativo para ejecutar tareas en segundo plano.
en Windows, intente escribir
:!start make
en Linux/Mac OS X, tratar
:!make > /dev/null 2>&1 &
:! Start make funciona bien si solo intenta generar un proceso de make. Estoy buscando utilizar la característica de compilación de gvim donde lee los errores en vim y puede saltar al error en el código fuente haciendo doble clic en él. – Amjith
Trate de usar
:!start make
(más información en ": ayudar a comenzar!") - de esa forma, vim no tiene que esperar a que el proceso comience a finalizar; puede continuar con su edición).
:! Start make funciona bien si solo intenta generar un proceso make. Estoy buscando utilizar la característica de compilación de gvim donde lee los errores en vim y puede saltar al error en el código fuente haciendo doble clic en él. – Amjith
No podrá ver el progreso de make (dentro de Vim) a menos que instale una versión muy reciente de Vim (v7.4 y muchos parches, o simplemente Vim 8). Ahora hay algunos complementos que se han aprovechado de eso. Mi BuildToolsWrapper es uno de ellos. Lo he probado con éxito en Linux y en Windows.
Antes de eso necesitábamos otros trucos. Recuerdo el plugin de Marc Weber que fue capaz de emular la compilación de fondo en Windows. Hubo algunos otros. Dejo que otros los incluyan.
Eche un vistazo a mi AsyncCommand plugin. Simplemente envuelve la sintaxis vim requerida para ejecutar algo y cargarlo con --remote. Cargué AsyncCommand 2.0 que incluye un comando AsyncMake
.
Agregue la secuencia de comandos a su .vim/plugin
y puede compilar con :AsyncMake
o :AsyncMake target
. Los errores se abrirán en su quickfix una vez que la marca finalice.
En respuesta a las observaciones de código más legible:
Para ver los resultados se basan en Windows, si tiene cygwin/unxutils/algo con tail en su camino, a continuación, en asynccommand.vim, cambiar
call <SID>Async_Impl(tool_cmd, vim_cmd)
a
call <SID>Async_Impl(tool_cmd, vim_cmd)
call <SID>Async_Impl("tail -f ". temp_file, "")
Eso debería cambiar todos los comandos de Async para abrir una segunda ventana de comando con la salida.
Hola, gracias por crear ese complemento. ¿Hay alguna manera de ver el proceso de hacer en acción? Estoy usando Win XP y la ventana de comandos está en blanco hasta que se completa el proceso de creación y luego se abre la ventana de revisión. – Amjith
Olvidé que la ventana de comandos no muestra nada. He modificado la respuesta para dar una posible solución. – idbrii
Agregué las líneas que mencioné anteriormente, pero todavía tengo una ventana de comando en blanco. Estoy en Windows XP y tengo cola en mi camino. Incluso incluí la ruta completa al comando tail. – Amjith
ver this script
Ese script no se puede usar en Windows. – vexe
Si bien esto podría responder teóricamente a la pregunta, [sería preferible] (// meta.stackoverflow.com/q/8259) incluir aquí las partes esenciales de la respuesta y proporcionar el enlace de referencia. –
Tener un vistazo a @ de tpope dispatch.vim
https://github.com/tpope/vim-dispatch#readme
Vídeo trailer: http://vimeo.com/63116209
- 1. ActionBar setBackgroundDrawable() nulling background from Thread/Handler
- 2. ¿Cómo ejecutar windows gvim from cygwin?
- 3. C# make file read/write from readonly
- 4. make gvim treat wrapped línea como nueva línea
- 5. Make Python unittest fail on exception from any thread
- 6. Spinning Background Tareas en Rails
- 7. skipfish - error en make
- 8. Inferring include paths y make targets from Makefile existente en Eclipse
- 9. Envoltorio de palabras en Gvim
- 10. Complementos en gVim no funciona
- 11. fuzzyfinder no funciona en gvim
- 12. Texto en Gvim que desaparece
- 13. Uso efectivo de gvim en una red
- 14. SELECCIONAR * FROM en MySQLi
- 15. -moz-background-clip: * text * en Mozilla
- 16. ¿Cómo elimino background-image en css?
- 17. UITableView background Image
- 18. Guardar todas las ventanas/pestañas en GVim
- 19. cómo cambiar el margen izquierdo en gvim
- 20. Cómo habilitar intellisense en VIM (gvim)
- 21. ¿Cómo puedo revisar la ortografía en gVim?
- 22. Varias pestañas en Windows y gvim
- 23. Eliminar la barra de herramientas en GVim
- 24. Crear un "proyecto" en VIM/MacVim/GVIM
- 25. Cómo sangrar líneas múltiples en vim/gvim?
- 26. ¿Cómo puedo compilar gVim en Ubuntu?
- 27. GVim: Abrir en una nueva pestaña
- 28. background-image no funciona
- 29. Android Layout background alpha
- 30. Android Activity Background Image
hizo u encontrar una buena solución para este –
@pydave creado un plugin llamado AsyncCommand que logra la mayoría de los elementos enumerados en la pregunta, excepto ver el proceso de fabricación en acción. – Amjith