mirror of
https://git.pwmt.org/pwmt/zathura.git
synced 2024-12-28 06:46:00 +01:00
Add initial vim ftplugin
This commit is contained in:
parent
03e1fb1f90
commit
5640bc78ec
1 changed files with 52 additions and 0 deletions
52
tex_zathurasyntex.vim
Normal file
52
tex_zathurasyntex.vim
Normal file
|
@ -0,0 +1,52 @@
|
|||
" See LICENSE file for license and copyright information
|
||||
|
||||
" avoid re-execution
|
||||
if exists("b:did_zathura_synctex_plugin")
|
||||
finish
|
||||
endif
|
||||
let b:did_zathura_synctex_plugin = 1
|
||||
|
||||
" set up global variables
|
||||
if !exists("g:zathura_synctex_latex_suite")
|
||||
let g:zathura_synctex_latex_suite = 1
|
||||
endif
|
||||
|
||||
function! Zathura_SyncTexForward()
|
||||
let source = expand("%:p")
|
||||
let input = shellescape(line(".").":".col(".").":".source)
|
||||
let output = "<none>"
|
||||
if exists("*Tex_GetMainFileName") && g:zathura_synctex_latex_suite == 1
|
||||
" use Tex_GetMainFileName from latex-suite if it is available
|
||||
let output = Tex_GetMainFileName(":p:r").".pdf"
|
||||
else
|
||||
" try to find synctex files and use them to determine the output file
|
||||
let synctex_files = split(glob("%:p:h/*.synctex.gz"), "\n")
|
||||
if len(synctex_files) == 0
|
||||
echo "No synctex file found"
|
||||
return
|
||||
endif
|
||||
|
||||
let found = 0
|
||||
for synctex in synctex_files
|
||||
let pdffile = substitute(synctex, "synctex.gz", "pdf", "")
|
||||
let out = system("synctex view -i ".input." -o ".shellescape(pdffile))
|
||||
if match(out, "No tag for ".source) >= 0
|
||||
continue
|
||||
endif
|
||||
|
||||
let found = 1
|
||||
let output = pdffile
|
||||
break
|
||||
endfor
|
||||
|
||||
if found == 0
|
||||
echo "No synctex file containing reference to source file found"
|
||||
return
|
||||
endif
|
||||
endif
|
||||
|
||||
let execstr = "silent !zathura --synctex-forward=".input." ".shellescape(output)
|
||||
exec execstr
|
||||
endfunction
|
||||
|
||||
nmap <buffer> <Leader>f :call Zathura_SyncTexForward()<Enter><Enter>
|
Loading…
Reference in a new issue