Hintergrundkompilierung der Vim-Latex-Suite

Hintergrundkompilierung der Vim-Latex-Suite

Ich kann diese Option in der Dokumentation nicht finden. Gibt es eine Möglichkeit, vim während der Kompilierung nicht einzufrieren? Ich würde gerne sagen, man gibt „\ll“ ein und vim-latex führt die Kompilierung im Hintergrund aus und ruft Quickfix auf, falls Fehler auftreten.

Ist das möglich? Einfach?

Antwort1

Vim ist bekanntermaßen schlecht bei Asynchronität, aber es gibt Plugins wieAsynchroner BefehlDamit können Sie Befehle im Hintergrund ausführen und die Ausgabe in einer Split-Version sehen, sobald der Befehl abgeschlossen ist. AsyncCommand wird mit einem AsyncMake-Befehl geliefert, der makeasynchron verwendet werden kann. Daher verwende ich in meiner vimrc:

noremap <leader>mm :AsyncMake<cr>

zum Mappen <leader>mmauf asynchrones Make und

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

um das Programm auf Latexmk einzustellen, makewenn ich Tex-Dateien öffne.

Antwort2

AsyncCommand erfordert, dass vim mit Client-Server kompiliert wird, was möglicherweise eine neue Kompilierung erfordert, aber nicht muss. Für diejenigen von uns, die Cygwin verwenden (nach der Installation von Cygwin/X), ist dies auf jeden Fall der Fall.

Eine Alternative, die bei mir sofort funktioniert hat, war dieversendenPlugin, das den Start!Befehl bereitstellt. Ich habe Folgendes in meiner vimrc:

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

Dadurch kann ich das manuelle Schreiben der Datei vor der Kompilierung überspringen und nach der Kompilierung (dem Befehl) aufräumen latexmk -c. Eine einfachere Variante wäre

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

verwandte Informationen