Vim插件vim-latex-live-preview
会:LLPStartPreview
定期刷新生成的 PDF(通过在 tex 文件上调用 pdflatex)。
刷新后,PDF 中显示的位置保持不变(也许正如人们所预料的那样?)。
我正在使用的 PDF 查看器是evince
,尽管我很乐意更改。zathura
看起来很有趣。
我需要的:通过 vim 对源代码进行更改后,下次刷新时 PDF 查看器应跳转到最新更改。就像Tex Studio
这样。
我能想到的唯一可能方法是告诉 PDF 查看器跳转到特定的行/页面/部分。
问:是否有一个 Vim 插件可以实现这个功能?
问:是否有一个 PDF 查看器允许重新加载后跳转到文件中的特定位置?
答案1
无法分辨 vim-latex 的预览如何工作,但基于以下要点,使用 zathura 只需进行少量配置即可在 vim 中设置向前和向后搜索:
https://gist.github.com/vext01/16df5bd48019d451e078
你的见解是正确的。首先,你应该在synctex
启用的情况下编译你的 pdf(我想 vim-latex 会自动执行此操作)。然后,zathura
有一个--synctex-forward
选项,允许你指定 pdf 上要跳转到的位置。这是“前进”方向。另一方面,有一个告诉 zathura在你执行时-x command
执行的。最后,vim 可以使用 启动,这样你就可以从外部调用它(zathura 的选项)并跳转到特定位置——“后退”方向。command
CTRL+Click
--servername nameserver
-x
要点很好地实现了这一点。 下面是我稍作修改的版本:
- 维穆拉
- vimscript 函数
nnoremap <buffer> <leader>p :call Synctex()<CR>
alias vim="vim --servername vimd"
基本上,
- 我总是启动
vim
比<leader>p
在正确的位置打开 pdf。 - 该
vim
别名会自动设置一个服务器,允许外部程序与 vim 对话。 - 映射
Synctex()
调用vimura
外部脚本,传递--synctex-forward
来自 vim 上下文的选项和数据(line('.')
...) vimura
-x
使用 vim 设置和--synctex-forward
从参数中检索来调用 zathura 。- 最后,
<leader>p
将pdf移动到正确的位置,Ctrl+click
将vim移动到正确的位置。
希望这不会让人太困惑。