latexmk 没有在 vim 中返回光标

latexmk 没有在 vim 中返回光标

首先,一个免责声明:我不知道是否应该把它放在这里或vim。但我希望这里有很多人共同点。

我在用异步运行编译我的所有项目和文件,对于这个问题,我在使用 LaTex 时遇到了问题。我的 AsyncRun 是:

" AsyncRun {{{
" Quick run via <F10>
nnoremap <F10> :call <SID>compile_and_run()<CR>
inoremap <buffer> <F10> <Esc> :call <SID>compile_and_run()<CR>
function! s:compile_and_run()
  exec 'w'
  if &filetype == 'c'
    exec "AsyncRun! gcc % -o %<; time ./%<"
  elseif &filetype == 'fortran'
    exec "AsyncRun! gfortran -Wall % -o %<; time ./%<"
  elseif &filetype == 'tex'
    exec "AsyncRun! latexmk -pdflatex=lualatex -quiet -pdf -interaction=nonstopmode -shell-escape -synctex=1 -pvc %"
  elseif &filetype == 'sh'
    exec "AsyncRun! time bash %"
  elseif &filetype == 'python'
    exec "AsyncRun! time python3 %"
  endif
  exec '<CR>'
endfunction
let g:asyncrun_open = 15
"}}}

我的 .vimrc 中也有:

"LaTeX: {{{
augroup FT_LaTex
  autocmd BufReadPost *.tex setlocal filetype=tex
  au FileType tex let b:ale_linters =  ['texlab']
  au filetype tex let b:ale_fixers = ['latexindent', 'remove_trailing_lines', 'trim_whitespace']  
  let g:tex_flavor = 'latex'
  " let g:Tex_DefaultTargetFormat = 'pdf'
  " let g:Tex_ViewRule_pdf = 'evince_dbus.py'
  " let g:Tex_Debug = 1
  " let g:Tex_DebugLog = '/tmp/vim-latex-suite.log'
  au FileType tex inoremap "" ``"<++><esc>4hi
  " au FileType tex  nnoremap <buffer> <Leader>lm :up!<cr>:! latexmk -pdf -quiet --shell-escape %<cr>
  au FileType *.tex set vim=~/bin/vims.py
  au filetype tex syntax region texZone start='\\begin{minted}' end='\\end{minted}'
  au filetype tex imap `/ frac<c-r>=UltiSnips#ExpandSnippet()<cr>
  au filetype tex imap FBF FBF<c-r>=UltiSnips#ExpandSnippet()<cr>
  au filetype tex imap FIT FIT<c-r>=UltiSnips#ExpandSnippet()<cr>
  au filetype tex imap FTT FTT<c-r>=UltiSnips#ExpandSnippet()<cr>
augroup END
"}}}

现在的问题是,我期望编译后光标应该返回到我的 tex 缓冲区,但事实并非如此。它实际上粘在 quickfix 窗口中,我需要按 Esc 才能让光标返回。

如果我不使用-pvc选项,那么它就能正常工作。

相关内容