Compilación de fondo de la suite vim-latex

Compilación de fondo de la suite vim-latex

Parece que no puedo encontrar esta opción en la documentación. ¿Hay alguna manera de no congelar vim mientras se realiza la compilación? Lo que me gustaría es decir escribir "\ll" y hacer que vim-latex ejecute la compilación en segundo plano y, siempre que haya errores, abrir la solución rápida.

¿Es eso posible? ¿Fácil?

Respuesta1

Se sabe que Vim es malo en asincronismo, pero existen complementos comoComando asíncronopermitiéndole ejecutar comandos en segundo plano y ver el resultado dividido una vez finalizado el comando. AsyncCommand viene con un comando AsyncMake, que se puede utilizar de makeforma asincrónica. Por lo tanto, en mi vimrc uso:

noremap <leader>mm :AsyncMake<cr>

para asignar <leader>mma una marca asincrónica, y

:autocmd BufEnter *.tex let &makeprg="latexmk -e '$pdflatex=q/pdflatex -synctex=1 -interaction=nonstopmode/' -pdf ".expand("<amatch>")

para configurar el makeprograma en latexmk cuando abro archivos tex.

Respuesta2

AsyncCommand requiere que vim se compile con el servidor del cliente, lo que puede requerir o no una nueva compilación, y definitivamente lo hará para aquellos de nosotros que ejecutamos Cygwin (después de instalar Cygwin/X).

Una alternativa que funcionó de inmediato para mí fue ladespachocomplemento, que proporciona el Start!comando. Tengo lo siguiente en mi vimrc:

map <leader>lr :w<CR>:Start! latexmk -pdf -pdflatex="pdflatex --shell-escape \%O \%S" % && latexmk -c %<CR>

Esto me permite omitir la escritura manual del archivo antes de la compilación y también limpiarlo después de la compilación (el latexmk -ccomando). Una variante más simple sería

map <leader>lr :Start! latexmk -pdf % <CR>

información relacionada