
Não consigo encontrar essa opção na documentação. Existe uma maneira de não congelar o vim enquanto a compilação está acontecendo? O que eu gostaria é dizer "\ ll" e fazer com que o vim-latex execute a compilação em segundo plano e, se houver erros, abra o quickfix.
Isso é possível? Fácil?
Responder1
O Vim é conhecido por ser ruim em assincronismo, mas existem plugins comoComando assíncronopermitindo que você execute comandos em segundo plano e veja a saída em uma divisão assim que o comando for concluído. AsyncCommand vem com um comando AsyncMake, que pode ser usado de make
forma assíncrona. Portanto, no meu vimrc eu uso:
noremap <leader>mm :AsyncMake<cr>
mapear <leader>mm
para make assíncrono e
:autocmd BufEnter *.tex let &makeprg="latexmk -e '$pdflatex=q/pdflatex -synctex=1 -interaction=nonstopmode/' -pdf ".expand("<amatch>")
para definir o make
programa para latexmk quando abro arquivos tex.
Responder2
AsyncCommand requer que o vim seja compilado com clientserver, o que pode ou não exigir uma nova compilação, e definitivamente exigirá para aqueles de nós que executam o Cygwin (após instalar o Cygwin/X).
Uma alternativa que funcionou imediatamente para mim foi oDespachoplugin, que fornece o Start!
comando. Eu tenho o seguinte no meu vimrc:
map <leader>lr :w<CR>:Start! latexmk -pdf -pdflatex="pdflatex --shell-escape \%O \%S" % && latexmk -c %<CR>
Isso me permite pular a gravação manual do arquivo antes da compilação e também limpar após a compilação (o latexmk -c
comando). Uma variante mais simples seria
map <leader>lr :Start! latexmk -pdf % <CR>