diff --git a/autoload/vimtex.vim b/autoload/vimtex.vim index 19a7bcd..7539000 100644 --- a/autoload/vimtex.vim +++ b/autoload/vimtex.vim @@ -365,7 +365,7 @@ function! s:get_main_latexmain(file) " {{{1 let l:path = fnamemodify(l:path, ':h') let l:dirs .= ',' . l:path endwhile - let l:candidates = split(globpath(l:dirs, '*.latexmain'), '\n') + let l:candidates = split(globpath(fnameescape(l:dirs), '*.latexmain'), '\n') " " If any candidates found, use the first one (corresponding to the one @@ -396,7 +396,7 @@ function! s:get_main_recurse(file) " {{{1 let l:path = fnamemodify(l:path, ':h') let l:dirs .= ',' . l:path endwhile - let l:candidates = split(globpath(l:dirs, '*.tex'), '\n') + let l:candidates = split(globpath(fnameescape(l:dirs), '*.tex'), '\n') " " Search through candidates for \include{current file} diff --git a/autoload/vimtex/latexmk.vim b/autoload/vimtex/latexmk.vim index ea01a06..3f64b4a 100644 --- a/autoload/vimtex/latexmk.vim +++ b/autoload/vimtex/latexmk.vim @@ -85,6 +85,11 @@ endfunction " }}}1 function! vimtex#latexmk#callback(status) " {{{1 + if get(s:, 'silence_next_callback', 0) + let s:silence_next_callback = 0 + return + endif + call vimtex#latexmk#errors_open(0) redraw! @@ -102,9 +107,9 @@ endfunction " }}}1 function! vimtex#latexmk#clean(full) " {{{1 if b:vimtex.pid - call vimtex#echo#status(['latexmk clean: ', - \ ['VimtexWarning', 'not while latexmk is running!']]) - return + silent call vimtex#latexmk#stop() + let l:restart = 1 + let s:silence_next_callback = 1 endif " @@ -124,6 +129,10 @@ function! vimtex#latexmk#clean(full) " {{{1 call vimtex#util#execute({'cmd' : cmd}) let b:vimtex.cmd_latexmk_clean = cmd + if get(l:, 'restart', 0) + silent call vimtex#latexmk#compile() + endif + call vimtex#echo#status(['latexmk clean: ', \ ['VimtexSuccess', 'finished' . (a:full ? ' (full)' : '')]]) endfunction @@ -179,7 +188,7 @@ endfunction function! vimtex#latexmk#compile_ss(verbose) " {{{1 if b:vimtex.pid call vimtex#echo#status(['latexmk compile: ', - \ ['VimtexWarning', 'already running for `' . g:vimtex.base . "'"]]) + \ ['VimtexWarning', 'already running for `' . b:vimtex.base . "'"]]) return endif @@ -391,6 +400,9 @@ function! s:latexmk_build_cmd() " {{{1 if g:vimtex_latexmk_continuous let cmd .= ' -pvc' + if get(s:, 'silence_next_callback', 0) + let cmd .= ' -view=none' + endif endif if g:vimtex_latexmk_callback && has('clientserver') diff --git a/autoload/vimtex/view.vim b/autoload/vimtex/view.vim index 611a78e..9c36e59 100644 --- a/autoload/vimtex/view.vim +++ b/autoload/vimtex/view.vim @@ -191,6 +191,8 @@ function! s:mupdf.start(outfile) dict " {{{2 call vimtex#util#execute(exe) let self.cmd_start = exe.cmd + sleep 300m + call self.xwin_get_id() call self.xwin_send_keys(g:vimtex_view_mupdf_send_keys) call self.forward_search(a:outfile) @@ -346,6 +348,8 @@ function! s:zathura.start(outfile) dict " {{{2 call vimtex#util#execute(exe) let self.cmd_start = exe.cmd + sleep 300m + call self.xwin_get_id() call self.forward_search(a:outfile) endfunction @@ -405,7 +409,6 @@ endfunction function! s:xwin_get_id() dict " {{{1 if !executable('xdotool') | return 0 | endif if self.xwin_id > 0 | return 0 | endif - sleep 500m let cmd = 'xdotool search --class ' . self.class let xwin_ids = split(system(cmd), '\n') diff --git a/test/issue-237/[code college-1] title/test.tex b/test/issue-237/[code college-1] title/test.tex new file mode 100644 index 0000000..2930e53 --- /dev/null +++ b/test/issue-237/[code college-1] title/test.tex @@ -0,0 +1,4 @@ +\documentclass{minimal} +\begin{document} +Hello world! +\end{document}