/nvimager

Inline markdown image/gif/video/pdf/LaTeX previewer for nvim using ueberzug.

Primary LanguageLuaMIT LicenseMIT

nvimager

repo size license contributions welcome standard-readme compliant

Inline markdown image/gif/video/pdf/LaTeX previewer for nvim using ueberzug.

Designed for use with vimwiki using markdown syntax.

nvimagerbannerlong

Table of Contents

Install

Dependencies
nvimager Download using your preffered plugin manager, otherwise here are instructions for Vim-Plug.
  1. Install junegunn/vim-plug.

  2. Add plugin to vim-plug block in vimrc.

call plug#begin[]
  Plug 'mbpowers/nvimager'
call plug#end[]
  1. Add keybinding in vimrc.

nmap <leader>qq <Plug>NvimagerToggle

  1. Restart nvim, and run :PlugInstall.

Usage

Nvimager matches text in the buffer to the following patterns:

Dynamic Previews

[name](file:path) or $ equation $

  • Height is determined by number empty lines below (excluding line with EOF).
  • Width is the width of the terminal.
  • Will update on the fly on BufTextChanged.
Static Previews

[name](file:path)<!--widthxheight--> or TODO $ equation $<!--widthxheight-->

  • Width and height are measured in terminal cells.
  • The html comment <!--comment--> is allowed either two or three hyphens per side.
  • On creation a static image will insert filler text, consisting of full block characters, "█", in exactly the cells of the preview.
  • Do not delete filler text! Filler text will be deleted upon BufWrite, deletion of the link pattern, or when nvimager is toggled off.
  • Filler text is removed PreBufWrite and replaced PostBufWrite, so you don't have to toggle to avoid writing filler lines to your file.
  • Do not have multiple static previews on one line!
  • Must toggle nvimager to update size.
Block Previews
  • TODO

example

Configuration

Options

You can set these in your init.vim:

option default description
nvimager#autostart 0 start on BufEnter?
nvimager#title 1 print titles?
nvimager#dynamic_scaler 'fit_contain' see Üeberzug
nvimager#static_scaler 'forced_cover' see Üeberzug
let g:nvimager#autostart = 0
let g:nvimager#title = 1
let g:nvimager#dynamic_scaler = 'fit_contain'
let g:nvimager#static_scaler = 'forced_cover'

Acknowledgements

Scripts

vimg

animated_thumbnail_gen.sh

neovim-plugins-in-lua

Maintainers

@mbpowers

Contributing

PRs, issues and feature suggestion welcomed.

If editing the README, please conform to the standard-readme specification.

License

MIT © 2022 mbpowers