
我似乎在文檔中找不到這個選項。有沒有辦法在編譯過程中不凍結vim?我想說的是輸入“\ll”並讓 vim-latex 在後台運行編譯,如果出現錯誤,則啟動快速修復。
那可能嗎?簡單的?
答案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 需要使用 clientserver 來編譯 vim,這可能需要也可能不需要新的編譯,對於我們這些執行 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>