Added option to turn of continuous mode (see docs)
This commit is contained in:
parent
d44ecff1cf
commit
0dc505bd58
@ -232,6 +232,7 @@ function! s:init_options() " {{{1
|
|||||||
call latex#util#error_deprecated('g:latex_errorformat_show_warnings')
|
call latex#util#error_deprecated('g:latex_errorformat_show_warnings')
|
||||||
call latex#util#error_deprecated('g:latex_latexmk_autojump')
|
call latex#util#error_deprecated('g:latex_latexmk_autojump')
|
||||||
call latex#util#error_deprecated('g:latex_latexmk_quickfix')
|
call latex#util#error_deprecated('g:latex_latexmk_quickfix')
|
||||||
|
call latex#util#error_deprecated('g:latex_latexmk_options')
|
||||||
|
|
||||||
call latex#util#set_default('g:latex_build_dir', '.')
|
call latex#util#set_default('g:latex_build_dir', '.')
|
||||||
call latex#util#set_default('g:latex_complete_enabled', 1)
|
call latex#util#set_default('g:latex_complete_enabled', 1)
|
||||||
@ -264,7 +265,8 @@ function! s:init_options() " {{{1
|
|||||||
call latex#util#set_default('g:latex_indent_enabled', 1)
|
call latex#util#set_default('g:latex_indent_enabled', 1)
|
||||||
call latex#util#set_default('g:latex_latexmk_enabled', 1)
|
call latex#util#set_default('g:latex_latexmk_enabled', 1)
|
||||||
call latex#util#set_default('g:latex_latexmk_callback', 1)
|
call latex#util#set_default('g:latex_latexmk_callback', 1)
|
||||||
call latex#util#set_default('g:latex_latexmk_options', '')
|
call latex#util#set_default('g:latex_latexmk_continuous', 1)
|
||||||
|
call latex#util#set_default('g:latex_latexmk_background', 0)
|
||||||
call latex#util#set_default('g:latex_latexmk_output', 'pdf')
|
call latex#util#set_default('g:latex_latexmk_output', 'pdf')
|
||||||
call latex#util#set_default('g:latex_mappings_enabled', 1)
|
call latex#util#set_default('g:latex_mappings_enabled', 1)
|
||||||
call latex#util#set_default('g:latex_motion_enabled', 1)
|
call latex#util#set_default('g:latex_motion_enabled', 1)
|
||||||
|
@ -45,6 +45,9 @@ function! latex#latexmk#init(initialized) " {{{1
|
|||||||
nnoremap <silent><buffer> <localleader>lo :call latex#latexmk#output()<cr>
|
nnoremap <silent><buffer> <localleader>lo :call latex#latexmk#output()<cr>
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" The remaining part is only relevant for continuous mode
|
||||||
|
if !g:latex_latexmk_continuous | return | endif
|
||||||
|
|
||||||
"
|
"
|
||||||
" Ensure that all latexmk processes are stopped when vim exits
|
" Ensure that all latexmk processes are stopped when vim exits
|
||||||
" Note: Only need to define this once, globally.
|
" Note: Only need to define this once, globally.
|
||||||
@ -69,7 +72,7 @@ endfunction
|
|||||||
" }}}1
|
" }}}1
|
||||||
function! latex#latexmk#clean(full) " {{{1
|
function! latex#latexmk#clean(full) " {{{1
|
||||||
let data = g:latex#data[b:latex.id]
|
let data = g:latex#data[b:latex.id]
|
||||||
if s:latexmk_check_pid(data.pid)
|
if data.pid
|
||||||
echomsg "latexmk is already running"
|
echomsg "latexmk is already running"
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
@ -106,7 +109,7 @@ endfunction
|
|||||||
function! latex#latexmk#compile() " {{{1
|
function! latex#latexmk#compile() " {{{1
|
||||||
let data = g:latex#data[b:latex.id]
|
let data = g:latex#data[b:latex.id]
|
||||||
|
|
||||||
if s:latexmk_check_pid(data.pid)
|
if data.pid
|
||||||
echomsg "latexmk is already running for `" . data.base . "'"
|
echomsg "latexmk is already running for `" . data.base . "'"
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
@ -114,17 +117,20 @@ function! latex#latexmk#compile() " {{{1
|
|||||||
call s:latexmk_set_cmd(data)
|
call s:latexmk_set_cmd(data)
|
||||||
|
|
||||||
" Start latexmk
|
" Start latexmk
|
||||||
" Define execute dictionary and latexmk command
|
|
||||||
let exe = {}
|
let exe = {}
|
||||||
let exe.null = 0
|
let exe.null = 0
|
||||||
|
if !g:latex_latexmk_continuous && !g:latex_latexmk_background
|
||||||
|
let exe.bg = 0
|
||||||
|
endif
|
||||||
let exe.cmd = data.cmds.compile
|
let exe.cmd = data.cmds.compile
|
||||||
call latex#util#execute(exe)
|
call latex#util#execute(exe)
|
||||||
|
|
||||||
" Save PID
|
if g:latex_latexmk_continuous
|
||||||
call s:latexmk_set_pid(data)
|
call s:latexmk_set_pid(data)
|
||||||
|
echomsg 'latexmk continuous mode started successfully'
|
||||||
" Finished
|
else
|
||||||
echomsg 'latexmk started successfully'
|
echomsg 'latexmk compiling'
|
||||||
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
" }}}1
|
" }}}1
|
||||||
@ -200,7 +206,7 @@ function! latex#latexmk#status(detailed) " {{{1
|
|||||||
if a:detailed
|
if a:detailed
|
||||||
let running = 0
|
let running = 0
|
||||||
for data in g:latex#data
|
for data in g:latex#data
|
||||||
if s:latexmk_check_pid(data.pid)
|
if data.pid
|
||||||
if !running
|
if !running
|
||||||
echo "latexmk is running"
|
echo "latexmk is running"
|
||||||
let running = 1
|
let running = 1
|
||||||
@ -219,7 +225,7 @@ function! latex#latexmk#status(detailed) " {{{1
|
|||||||
echo "latexmk is not running"
|
echo "latexmk is not running"
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
if s:latexmk_check_pid(g:latex#data[b:latex.id].pid)
|
if g:latex#data[b:latex.id].pid
|
||||||
echo "latexmk is running"
|
echo "latexmk is running"
|
||||||
else
|
else
|
||||||
echo "latexmk is not running"
|
echo "latexmk is not running"
|
||||||
@ -231,7 +237,7 @@ endfunction
|
|||||||
function! latex#latexmk#stop() " {{{1
|
function! latex#latexmk#stop() " {{{1
|
||||||
let pid = g:latex#data[b:latex.id].pid
|
let pid = g:latex#data[b:latex.id].pid
|
||||||
let base = g:latex#data[b:latex.id].base
|
let base = g:latex#data[b:latex.id].base
|
||||||
if s:latexmk_check_pid(pid)
|
if pid
|
||||||
call s:latexmk_kill_pid(pid)
|
call s:latexmk_kill_pid(pid)
|
||||||
let g:latex#data[b:latex.id].pid = 0
|
let g:latex#data[b:latex.id].pid = 0
|
||||||
echo "latexmk stopped for `" . base . "'"
|
echo "latexmk stopped for `" . base . "'"
|
||||||
@ -243,7 +249,7 @@ endfunction
|
|||||||
" }}}1
|
" }}}1
|
||||||
function! latex#latexmk#stop_all() " {{{1
|
function! latex#latexmk#stop_all() " {{{1
|
||||||
for data in g:latex#data
|
for data in g:latex#data
|
||||||
if s:latexmk_check_pid(data.pid)
|
if data.pid
|
||||||
call s:latexmk_kill_pid(data.pid)
|
call s:latexmk_kill_pid(data.pid)
|
||||||
let data.pid = 0
|
let data.pid = 0
|
||||||
endif
|
endif
|
||||||
@ -267,11 +273,10 @@ function! s:latexmk_set_cmd(data) " {{{1
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
let cmd .= ' -' . g:latex_latexmk_output
|
let cmd .= ' -' . g:latex_latexmk_output
|
||||||
let cmd .= ' -verbose '
|
|
||||||
let cmd .= ' -pvc'
|
|
||||||
let cmd .= ' ' . g:latex_latexmk_options
|
|
||||||
let cmd .= ' -e ' . shellescape('$pdflatex =~ s/ / -file-line-error /')
|
let cmd .= ' -e ' . shellescape('$pdflatex =~ s/ / -file-line-error /')
|
||||||
|
|
||||||
|
if g:latex_latexmk_continuous
|
||||||
|
let cmd .= ' -pvc'
|
||||||
if g:latex_latexmk_callback && has('clientserver')
|
if g:latex_latexmk_callback && has('clientserver')
|
||||||
let callback = 'vim --servername ' . v:servername
|
let callback = 'vim --servername ' . v:servername
|
||||||
\ . ' --remote-expr \"latex\#latexmk\#errors(0)\"'
|
\ . ' --remote-expr \"latex\#latexmk\#errors(0)\"'
|
||||||
@ -283,15 +288,18 @@ function! s:latexmk_set_cmd(data) " {{{1
|
|||||||
\ . ' -e ''$failure_cmd .= "' . callback . '"'''
|
\ . ' -e ''$failure_cmd .= "' . callback . '"'''
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
let cmd .= ' ' . shellescape(a:data.base)
|
let cmd .= ' ' . shellescape(a:data.base)
|
||||||
|
|
||||||
|
if g:latex_latexmk_continuous || g:latex_latexmk_background
|
||||||
if has('win32')
|
if has('win32')
|
||||||
let cmd .= ' >' . tmp
|
let cmd .= ' >' . tmp
|
||||||
let cmd = 'cmd /s /c "' . cmd . '"'
|
let cmd = 'cmd /s /c "' . cmd . '"'
|
||||||
else
|
else
|
||||||
let cmd .= ' &>' . tmp
|
let cmd .= ' &>' . tmp
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
let a:data.cmds.compile = cmd
|
let a:data.cmds.compile = cmd
|
||||||
let a:data.tmp = tmp
|
let a:data.tmp = tmp
|
||||||
@ -313,18 +321,6 @@ function! s:latexmk_set_pid(data) " {{{1
|
|||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:latexmk_check_pid(pid) " {{{1
|
|
||||||
if has('win32')
|
|
||||||
" don't have Windows ==> no change
|
|
||||||
return a:pid
|
|
||||||
else
|
|
||||||
" ps considers a 0 PID out of range and prints and error message
|
|
||||||
" side effect: will no longer see laxtexmk commands run externally
|
|
||||||
return a:pid && system('ps -p ' . a:pid . ' -o cmd= | grep "^perl.*latexmk"')
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" }}}1
|
|
||||||
function! s:latexmk_kill_pid(pid) " {{{1
|
function! s:latexmk_kill_pid(pid) " {{{1
|
||||||
let exe = {}
|
let exe = {}
|
||||||
let exe.bg = 0
|
let exe.bg = 0
|
||||||
@ -361,7 +357,7 @@ function! s:stop_buffer() " {{{1
|
|||||||
"
|
"
|
||||||
" Only stop if latexmk is running
|
" Only stop if latexmk is running
|
||||||
"
|
"
|
||||||
if s:latexmk_check_pid(pid)
|
if pid
|
||||||
"
|
"
|
||||||
" Count the number of buffers that point to current latex blob
|
" Count the number of buffers that point to current latex blob
|
||||||
"
|
"
|
||||||
|
@ -140,7 +140,11 @@ function! latex#util#execute(exe) " {{{1
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if bg
|
||||||
silent execute cmd
|
silent execute cmd
|
||||||
|
else
|
||||||
|
execute cmd
|
||||||
|
endif
|
||||||
|
|
||||||
" Return to previous working directory
|
" Return to previous working directory
|
||||||
if has_key(a:exe, 'wd')
|
if has_key(a:exe, 'wd')
|
||||||
|
@ -280,7 +280,8 @@ Overview:~
|
|||||||
|g:latex_indent_enabled|
|
|g:latex_indent_enabled|
|
||||||
|g:latex_latexmk_callback|
|
|g:latex_latexmk_callback|
|
||||||
|g:latex_latexmk_enabled|
|
|g:latex_latexmk_enabled|
|
||||||
|g:latex_latexmk_options|
|
|g:latex_latexmk_continuous|
|
||||||
|
|g:latex_latexmk_background|
|
||||||
|g:latex_latexmk_output|
|
|g:latex_latexmk_output|
|
||||||
|g:latex_mappings_enabled|
|
|g:latex_mappings_enabled|
|
||||||
|g:latex_motion_enabled|
|
|g:latex_motion_enabled|
|
||||||
@ -390,9 +391,17 @@ necessary variables and autocommands will not be defined, and the mappings
|
|||||||
will not be created. >
|
will not be created. >
|
||||||
let g:latex_latexmk_enabled = 1
|
let g:latex_latexmk_enabled = 1
|
||||||
<
|
<
|
||||||
*g:latex_latexmk_options*
|
*g:latex_latexmk_background*
|
||||||
Set extra options for `latexmk` compilation. >
|
If continuous mode is disabled, then this option may be used to set
|
||||||
let g:latex_latexmk_options = ''
|
whether single compilations should be run in the foreground or the
|
||||||
|
background. >
|
||||||
|
let g:latex_latexmk_background = 0
|
||||||
|
<
|
||||||
|
*g:latex_latexmk_continuous*
|
||||||
|
If enabled, `latexmk` will run in continuous mode. This means that the
|
||||||
|
document is compiled every time a document file has been changed. Set to 0 to
|
||||||
|
disable. Note that the callback functions only work if continuous mode is enabled. >
|
||||||
|
let g:latex_latexmk_continuous = 1
|
||||||
<
|
<
|
||||||
*g:latex_latexmk_output*
|
*g:latex_latexmk_output*
|
||||||
Set desired output for `latexmk` compilation. >
|
Set desired output for `latexmk` compilation. >
|
||||||
@ -615,9 +624,9 @@ Associated settings:
|
|||||||
==============================================================================
|
==============================================================================
|
||||||
LATEXMK *vim-latex-latexmk*
|
LATEXMK *vim-latex-latexmk*
|
||||||
|
|
||||||
|vim-latex| provides a basic interface to `latexmk` for background
|
|vim-latex| provides a basic interface to `latexmk` for compilation. The
|
||||||
compilation. The interface may be disabled with |g:latex_latexmk_enabled|.
|
interface may be disabled with |g:latex_latexmk_enabled|. The default
|
||||||
The default mappings are: >
|
mappings are: >
|
||||||
|
|
||||||
nnoremap <localleader>ll :call latex#latexmk#compile()<cr>
|
nnoremap <localleader>ll :call latex#latexmk#compile()<cr>
|
||||||
nnoremap <localleader>lk :call latex#latexmk#stop(1)<cr>
|
nnoremap <localleader>lk :call latex#latexmk#stop(1)<cr>
|
||||||
@ -629,11 +638,17 @@ The default mappings are: >
|
|||||||
nnoremap <localleader>lc :call latex#latexmk#clean(0)<cr>
|
nnoremap <localleader>lc :call latex#latexmk#clean(0)<cr>
|
||||||
nnoremap <localleader>lC :call latex#latexmk#clean(1)<cr>
|
nnoremap <localleader>lC :call latex#latexmk#clean(1)<cr>
|
||||||
|
|
||||||
The background compilation is started with |latex#latexmk#compile|. It relies
|
Compilation is started with |latex#latexmk#compile|. The default behaviour
|
||||||
on the preview continuous mode of `latexmk`. If vim is compiled with the
|
uses preview continuous mode of `latexmk`, which may be disabled with
|
||||||
|+clientserver| option and if |g:latex_latexmk_callback| is enabled, then
|
|g:latex_latexmk_continuous|. If it is disabled, then the option
|
||||||
compilation errors are parsed automatically. This is done by utilizing the
|
|g:latex_latexmk_background| may be used to decide if the single shot
|
||||||
tricks explained in |vim-latex-latexmk-tricks|.
|
compilation should run in the foreground or the background.
|
||||||
|
|
||||||
|
If vim is compiled with the |+clientserver| option and if
|
||||||
|
|g:latex_latexmk_callback| is enabled, then compilation errors are parsed
|
||||||
|
automatically. This is done by utilizing the tricks explained in
|
||||||
|
|vim-latex-latexmk-tricks|. Note however that this only works for continuous
|
||||||
|
compilation mode.
|
||||||
|
|
||||||
To check for and view errors in the quickfix window, use
|
To check for and view errors in the quickfix window, use
|
||||||
|latex#latexmk#errors|. To check if background compilation is running, use
|
|latex#latexmk#errors|. To check if background compilation is running, use
|
||||||
@ -643,7 +658,8 @@ Associated settings:
|
|||||||
|g:latex_latexmk_enabled|
|
|g:latex_latexmk_enabled|
|
||||||
|g:latex_latexmk_callback|
|
|g:latex_latexmk_callback|
|
||||||
|g:latex_latexmk_autojump|
|
|g:latex_latexmk_autojump|
|
||||||
|g:latex_latexmk_options|
|
|g:latex_latexmk_continuous|
|
||||||
|
|g:latex_latexmk_background|
|
||||||
|g:latex_latexmk_output|
|
|g:latex_latexmk_output|
|
||||||
|
|
||||||
Functions:
|
Functions:
|
||||||
@ -1017,6 +1033,19 @@ CHANGELOG *vim-latex-changelog*
|
|||||||
The following changelog only logs important changes, such as changes that
|
The following changelog only logs important changes, such as changes that
|
||||||
break backwards compatibility. See the git log for the detailed changelog.
|
break backwards compatibility. See the git log for the detailed changelog.
|
||||||
|
|
||||||
|
2014-08-24: Made continuous mode optional~
|
||||||
|
Added option |g:latex_latexmk_continuous| to set whether or not the `latexmk`
|
||||||
|
process should run in continuous mode. Also added option
|
||||||
|
|g:latex_latexmk_background| to set whether single compilations should run in
|
||||||
|
the foreground or the background.
|
||||||
|
|
||||||
|
I also deprecated the old variable that sets options for `latexmk`, because
|
||||||
|
I find that it makes more sense to control `latexmk` through `latexmkrc`
|
||||||
|
files.
|
||||||
|
|
||||||
|
Deprecated option:
|
||||||
|
*g:latex_latexmk_options*
|
||||||
|
|
||||||
2014-06-13: Changed some option names~
|
2014-06-13: Changed some option names~
|
||||||
Some |vim-latex| option names were changed in an attempt to make the names
|
Some |vim-latex| option names were changed in an attempt to make the names
|
||||||
more consistent. These options are listed here for reference:
|
more consistent. These options are listed here for reference:
|
||||||
|
Loading…
Reference in New Issue
Block a user