Problem: SyncTeX setup for forward/inverse search was undocumented, forcing users to figure out viewer-specific CLI flags on their own. Solution: Add `preview-synctex` vimdoc section with shared setup and per-viewer recipes for Zathura, Sioyek, and Okular. Add FAQ entry in README pointing to the new section.
1.8 KiB
1.8 KiB
preview.nvim
Universal previewer for Neovim
An extensible framework for compiling and previewing any documents (LaTeX, Typst, Markdown, etc.)—diagnostics included.
Features
- Async compilation via
vim.system() - Built-in presets for Typst, LaTeX (latexmk, pdflatex, tectonic), Markdown, GitHub-flavored Markdown, AsciiDoc, PlantUML, Mermaid, and Quarto
- Compiler errors via
vim.diagnosticor quickfix - Previewer auto-close on buffer deletion
Requirements
- Neovim 0.11+
Installation
With lazy.nvim:
{
'barrettruth/preview.nvim',
init = function()
vim.g.preview = { typst = true, latex = true }
end,
}
Or via luarocks:
luarocks install preview.nvim
Documentation
:help preview.nvim
FAQ
Q: How do I define a custom provider?
vim.g.preview = {
rst = {
cmd = { 'rst2html' },
args = function(ctx)
return { ctx.file, ctx.output }
end,
output = function(ctx)
return ctx.file:gsub('%.rst$', '.html')
end,
},
}
Q: How do I override a preset?
vim.g.preview = {
typst = { env = { TYPST_FONT_PATHS = '/usr/share/fonts' } },
}
Q: How do I automatically open the output file?
Set open = true on your provider (all built-in presets have this enabled) to
open the output with vim.ui.open() after the first successful compilation in
toggle/watch mode. For a specific application, pass a command table:
vim.g.preview = {
typst = { open = { 'sioyek', '--new-instance' } },
}
Q: How do I set up SyncTeX (forward/inverse search)?
See :help preview-synctex for full recipes covering Zathura, Sioyek, and
Okular.