nvimager icon indicating copy to clipboard operation
nvimager copied to clipboard

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

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
  • Usage
  • Maintainers
  • Contributing
  • License

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