LINUX.ORG.RU

Как установить Zathura в Vim на Fedora?

 , , , ,


0

2

Перешёл недавно с macOS на Fedora 32 и решил установить Vim + LaTex + Zathura. Однако, после установки последней, возникли проблемы при использовании её в Vim в качестве:

let g:vimtex_view_method='zathura'
после компиляции pdf-файлы открываются в стандартном просмотрщике документов. В десктопном режиме Zathura всё же открывает pdf-файлы, но в ней отсутствует всякий функционал и поддержка Vim'овского кеймапа, работает только прокрутка страниц.

При проверкe версии Zathura в консоли выдаёт следующее:

error: plugin: filetype already registered: application/pdf
error: Could not register plugin '/usr/lib64/zathura/libpdf-poppler.so'.
zathura 0.4.5
girara 0.3.4 (runtime: 0.3.4)
(plugin) cb (0.1.8) (/usr/lib64/zathura/libcb.so)
(plugin) djvu (0.2.9) (/usr/lib64/zathura/libdjvu.so)
(plugin) pdf-mupdf (0.3.5) (/usr/lib64/zathura/libpdf-mupdf.so)
(plugin) ps (0.2.6) (/usr/lib64/zathura/libps.so)

После установки Vim на macOS требовалось настроить плагины:

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

Возможно в процессе установки я что-то упустил?

отсутствует всякий функционал и поддержка Vim’овского кеймапа

Что такое кеймап? Имеешь ли ты в виду, что клик по объекту в zathura дожен открывать вим в нужной позиции в коде?

papin-aziat ★★★ ()
Ответ на: комментарий от papin-aziat

Да, poppler уже неоднократно пробовал переустанавливать через различные менеджеры пакетов и через центр приложений. Он вроде бы установленный и видит все необходимые зависимости, но всё-равно выдаёт эту ошибку. Даже под чистую сносил Zathura и ставил заново, всё тщетно. Вместо Zathura почему-то открывается Evince.

Да, кроме того, если

let g:vimtex_view_method='zathura'
то при открытии любого .tex файла в Vim выдаётся целая куча ошибок:
Обнаружена ошибка при обработке BufRead Автокоманды для "*.tex"..function dist
#ft#FTtex[47]..FileType Автокоманды для "*"..function <SNR>8_LoadFTPlugin[17].
.script /home/ivannomad/.vim/plugged/vimtex/ftplugin/tex.vim[25]..function vim
tex#init[3]..<SNR>35_init_state[1]..vimtex#state#init[9]..1[38]..vimtex#view#i
nit_state[11]..BufRead Автокоманды для "*.tex"..function dist#ft#FTtex[47]..Fi
leType Автокоманды для "*"..function <SNR>8_LoadFTPlugin[17]..script /home/iva
nnomad/.vim/plugged/vimtex/ftplugin/tex.vim[25]..function vimtex#init[3]..<SNR
>35_init_state[1]..vimtex#state#init[9]..1[38]..vimtex#view#init_state[5]..vim
tex#view#zathura#new[18]..vimtex#log#warning[1]..25[13]..vimtex#debug#stacktra
ce:
строка   44:
E684: Индекс списка за пределами диапазона: 1
E116: Параметры для функции matchstr( vimtex#util#command('verbose function ' 
. l:func_name)[1], v:lang[0:1] ==# 'en'   ? 'Last set from \zs.*\.vim' : '\f\+
\.vim') заданы неверно
Обнаружена ошибка при обработке BufRead Автокоманды для "*.tex"..function dist
#ft#FTtex[47]..FileType Автокоманды для "*"..function <SNR>8_LoadFTPlugin[17].
.script /home/ivannomad/.vim/plugged/vimtex/ftplugin/tex.vim[25]..function vim
tex#init[3]..<SNR>35_init_state[1]..vimtex#state#init[9]..1:
строка   38:
E170: Отсутствует команда :endfor
Обнаружена ошибка при обработке BufRead Автокоманды для "*.tex"..function dist
#ft#FTtex[47]..FileType Автокоманды для "*"..function <SNR>8_LoadFTPlugin[17].
.script /home/ivannomad/.vim/plugged/vimtex/ftplugin/tex.vim[25]..function vim
tex#init[3]..<SNR>35_init_state[1]..vimtex#state#init:
строка    9:
E171: Отсутствует команда :endif

ivannomad ()
Ответ на: комментарий от ivannomad

Давай по порядку, я же не в теме.

Что вообще должно происходить? Как я понял, ты пишешь код в vim и результат компиляции Latex-ом должен открываться в zathura, это всё что ты хочешь?

Почему я взялся помочь. Я писал много в лилипонде, это язык разметки для набора нот(похож на латех) и однажды настроил всё в среде гнома, суть там такая же походу, только ещё надо было, чтобы pdf был кликабельный и нажатие на ноту открывал указанный editor в нужной позиции.

У тебя ситуация должна быть полегче, кажется ты просто запутался в пакетах, или забыл прочитать мануал и сделать минимальные настройки.

papin-aziat ★★★ ()

поддержка Vim’овского кеймапа

Я поставил zathura, открыл ей пдф-ку, на вимовские шорткаты отзывается.

Как называется пакет латеха, который нужен, чтобы компилировать, и кинь свой файл с кодом, попробую.

papin-aziat ★★★ ()
Ответ на: комментарий от papin-aziat

Всё верно, мне необходимо набирать текст с различными математическими формулами, затем он должен компилироваться в Latex и выводиться через Zathura. Раньше я пользовался macOS и на него как-то получилось всё установить и настроить через Homebrew. Но вот как это делается на Fedora не пойму, либо Я что-то не установил, либо не настроил. На официальном сайте предлагают следующую инструкцию https://pwmt.org/projects/zathura/installation/

Установил girara и GTK+, но это не помогло. Я правда ещё не разобрался как установить и настроить Zathura вручную, с помощью указанного способа через meson и ninja.

ivannomad ()
Ответ на: комментарий от ivannomad

с помощью указанного способа через meson и ninja

Ты не туда копаешь, тебе не нужно ничего собирать, все нужные пакеты есть в репах.

$ dnf -C search zathura

zathura.x86_64 : A lightweight document viewer
zathura-bash-completion.noarch : bash-completion files for zathura
zathura-cb.x86_64 : Comic book support for zathura
zathura-devel.x86_64 : Development files for the zathura PDF viewer
zathura-djvu.x86_64 : DjVu support for zathura
zathura-fish-completion.noarch : fish-completion files for zathura
zathura-pdf-mupdf.x86_64 : PDF support for zathura via mupdf
zathura-pdf-poppler.x86_64 : PDF support for zathura via poppler
zathura-plugins-all.x86_64 : Zathura plugins (all plugins)
zathura-ps.x86_64 : PS support for zathura via libspectre
zathura-zsh-completion.noarch : zsh-completion files for zathura

Даже rpm-fusion не нужен.

$ dnf -C info zathura-* | grep ^Repository
Repository   : @System
Repository   : @System
Repository   : @System
Repository   : @System
Repository   : @System
Repository   : updates
Repository   : updates
Repository   : updates
Repository   : updates
Repository   : updates
papin-aziat ★★★ ()
Ответ на: комментарий от einhander

Чтобы сократить время, а то лень разбираться самому, а ТС походу новичёк в линукс, объясни какие проги стоят у тебя и пару команд, чтобы протестить, и файл, если есть, кинь какой-нибудь на латехе.

А я ему «переведу» на федору :-)

papin-aziat ★★★ ()
Ответ на: комментарий от ivannomad

Установил girara и GTK+

girara – жесткая зависимость для zathura, незачем было ставить отдельно.

gtk+ … у тебя там спин что-ли какой? На Workstation всё есть.

papin-aziat ★★★ ()
Последнее исправление: papin-aziat (всего исправлений: 1)

При проверкe версии Zathura в консоли выдаёт следующее:

Никаких ошибок, просто поставил пакет zathura-plugins-all

$ zathura --version
zathura 0.4.5
girara 0.3.4 (runtime: 0.3.4)
(plugin) djvu (0.2.9) (/usr/lib64/zathura/libdjvu.so)
(plugin) pdf-poppler (0.3.0) (/usr/lib64/zathura/libpdf-poppler.so)
(plugin) cb (0.1.8) (/usr/lib64/zathura/libcb.so)
(plugin) ps (0.2.6) (/usr/lib64/zathura/libps.so)
papin-aziat ★★★ ()

Вот рабочее решение.

Ставишь пакеты.

sudo dnf install -y vim vim-latex latexmk zathura-pdf-poppler

Создаёшь файл ~/.latexmkrc и пишешь туда

$pdf_previewer = 'zathura';

В терминале компилишь свой тех-файл командой

latexmk -pdf -pv myfile.tex

В vim-е

!latexmk -pdf -pv %

Всё.

papin-aziat ★★★ ()
Ответ на: комментарий от einhander

Да, видимо другой, но вот чё выше дал, то работает хорошо.

Name         : vim-latex
...
Description  : A comprehensive set of tools to view, edit and compile LaTeX documents without
             : needing to ever quit Vim. Together, they provide tools starting from macros to
             : speed up editing LaTeX documents to compiling TeX files to forward searching
             : .dvi documents.

papin-aziat ★★★ ()
Ответ на: комментарий от papin-aziat

Благодарю. Я попробовал переустановить все эти пакеты и в принципе теперь всё нормально установилось, и в консоли никаких ошибок более нет. Единственное, это когда добавляю в файл ~/.latexmkrc что-нибудь, то после его перезагрузки через :source ~/.latexmkrc он выдаёт ошибку на подобии этой:

E492: Not an editor command: $pdf_previewer = 'zathura';
Если компилировать через !latexmk -pdf -pv %, то файл pdf-файл открывается в оболочке Zathura (правда Vim'овские шорткаты не работают). Но если делать это внутри Vim'а через \ll он не может скомпилировать именно pdf-файл.

ivannomad ()
Ответ на: комментарий от ivannomad

:source ~/.latexmkrc

Ничего такого делать не надо! Ты компилишь файл программой latexmk, прежде чем скомпилить, она читает ~/.latexmkrc, вот и всё. Просто создай этот файл с указанным параметром, чтобы результат открывался в zathura.

правда Vim’овские шорткаты не работают

Я дергал управляющие клавиши, командную строку вима, ZZ, – всё работало. Какие шорткаты не работают конкретно(я в виме не силён)?

Но если делать это внутри Vim’а через \ll он не может скомпилировать именно pdf-файл.

Эээ.. Если я правильно понял, то это шорткаты для vim-latex, может он тебе и не нужен, если vim подсвечивает latex и так. Короче, vim-latex и latexmk – это разные программы, настраивать и использовать их надо по отдельности. Удали vim-latex и просто используй связку vim+latexmk. Если хочешь юзать vim-latex, то надо гуглить как его настраивать, это уже сам, я пару запросов делал и там дофига настроек, в том числе для компилирования pdf и вьювера.

papin-aziat ★★★ ()