From 51b32c2f845ead4ef987cde8a509061b7cc44b48 Mon Sep 17 00:00:00 2001 From: chenxinliang Date: Sun, 5 Feb 2023 09:17:17 +0800 Subject: [PATCH] fix the problem that open viewer in windows/neovim will show a cmd prompt --- autoload/vimtex/jobs/neovim.vim | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/autoload/vimtex/jobs/neovim.vim b/autoload/vimtex/jobs/neovim.vim index 66063bbc26..e41d9b4b78 100644 --- a/autoload/vimtex/jobs/neovim.vim +++ b/autoload/vimtex/jobs/neovim.vim @@ -6,9 +6,18 @@ function! vimtex#jobs#neovim#new(cmd) abort " {{{1 let l:job = deepcopy(s:job) - let l:job.cmd = has('win32') - \ ? 'cmd /s /c "' . a:cmd . '"' - \ : ['sh', '-c', a:cmd] + let l:modifier = get(g:, 'vimtex_job_cmd_modifier', has('win32') ? 'start ' : '') + if type(l:modifier) == v:t_func || (type(l:modifier) == v:t_string && exists('*' . l:modifier)) + let l:job.cmd = call(l:modifier, a:cmd) + else + if empty(l:modifier) + let l:job.cmd = has('win32') + \ ? 'cmd /s /c "' . a:cmd . '"' + \ : ['sh', '-c', a:cmd] + else + let l:job.cmd = l:modifier . a:cmd + endif + endif return l:job endfunction