vim-latex套件后台编译

vim-latex套件后台编译

我似乎在文档中找不到此选项。有没有办法在编译过程中不冻结 vim?我想要的是输入“\ll”,让 vim-latex 在后台运行编译,并且如果出现错误,则调出 quickfix。

这可能吗?容易吗?

答案1

众所周知,Vim 的异步性很差,但有以下插件:异步命令允许您在后台运行命令,并在命令完成后以拆分形式查看输出。AsyncCommand 附带一个 AsyncMake 命令,可用于make异步使用。因此,在我的 vimrc 中我使用:

noremap <leader>mm :AsyncMake<cr>

映射<leader>mm到异步 make,以及

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

make当我打开 tex 文件时将程序设置为 latexmk。

答案2

AsyncCommand 要求 vim 与 clientserver 一起编译,这可能需要也可能不需要新的编译,对于我们这些运行 Cygwin 的人来说肯定会这样(安装 Cygwin/X 之后)。

对我来说,一个立即有效的替代方案是派遣插件,它提供了Start!命令。我的 vimrc 中有以下内容:

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

这样我就不用在编译前手动写入文件,也可以在编译后清理文件(命令latexmk -c)。一个更简单的变体是

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

相关内容