Synctex для MacVim & zathura

29 июля 2022. Комментарии .

Почти все взято отсюда.

Задача: настроить обратный поиск synctex в MacVim + Zathura при работе на Mac OS, и научить файловый менеджер vifm открывать *.tex файлы в правильной инстанции MacVim.

Оглавление #

Установка zathura #

Установите zathura с поддержкой synctex на Mac OS.

1
2
3
4
5
6
7
brew tap zegervdv/zathura
brew install zathura --with-synctex
brew install zathura-pdf-poppler zathura-djvu zathura-ps
mkdir -p $(brew --prefix zathura)/lib/zathura
ln -s $(brew --prefix zathura-pdf-poppler)/libpdf-poppler.dylib $(brew --prefix zathura)/lib/zathura/libpdf-poppler.dylib
ln -s $(brew --prefix zathura-djvu)/libdjvu.dylib $(brew --prefix zathura)/lib/zathura/libdjvu.dylib
ln -s $(brew --prefix zathura-ps)/libps.dylib $(brew --prefix zathura)/lib/zathura/libps.dylib

Также, разумеется, установите LaTeX, MacVim (и опционально vifm).

Настройка конфигурационных файлов #

vifmrc #

~/.vifm/vifmrc
1
2
filetype *.pdf,*.djvu,*.ps,*.eps zathura %f 2>/dev/null &
nnoremap ,m :!/usr/local/bin/mvim --servername lisync %f 2>/dev/null &<cr>

.vimrc #

~/.vimrc
1
2
3
4
5
6
7
8
9
10
map <F11> <ESC>:w<CR>:!pdflatex -synctex=1 '%'<CR><CR>
function! SyncTexForward()
let linenumber=line(".")
let colnumber=col(".")
let filename=bufname("%")
let filenamePDF=filename[:-4]."pdf"
let execstr="!zathura --synctex-forward " . linenumber . ":" . colnumber . ":" . filename . " " . filenamePDF . "&>/dev/null &"
exec execstr
endfunction
map <C-enter> :call SyncTexForward()<CR><CR>

zathurarc #

~/.config/zathura/zarhurarc
1
2
3
set dbus-service true
set synctex true
set synctex-editor-command "mvim --servername lisync --remote-silent +%{line} %{input}"

Порядок работы #