
Я не могу найти эту опцию в документации. Есть ли способ не замораживать 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
программу latexmk при открытии файлов tex.
решение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>