presenting.nvim icon indicating copy to clipboard operation
presenting.nvim copied to clipboard

presenting.nvim is a neovim plugin that turns your markup files into slides (in neovim).

== presenting.nvim

presenting.nvim is a neovim plugin that turns your markup files into slides (in neovim).

It is rewrite of https://github.com/sotte/presenting.vim/[presenting.vim] in lua. It simplifies the code (and removes some features). presenting.vim is a clone of https://github.com/pct/present.vim[present.vim] which is a clone of https://github.com/sorah/presen.vim[presen.vim].

== Demo

image:examples/presentation.gif[demo presentation]

(Images don’t work in nvim by default 😢)

== Usage

With presenting.nvim installed and configured (see section below) open a markdown/org/adoc file, then start the presentation using global Presenting lua object:

.... :lua Presenting.toggle() ....

or using the Presenting user command:

.... :Presenting ....

Then navigate the presentation with the keys:

  • q: quit presentation mode
  • n: next slide
  • p: previous slide
  • f: first slide
  • l: last slide

=== Usage - I want to know more

This README is intentionally short. For more information, see :help presenting.nvim and the https://github.com/sotte/presenting.nvim/blob/main/doc/presenting.txt[documentation].

== Installation and Setup

With lazy.nvim:

[source,lua]

return { "sotte/presenting.nvim", opts = { -- fill in your options here -- see :help Presenting.config }, cmd = { "Presenting" }, }

== Tips

😎 Directly start a presentation from the CLI:

[source,bash]

nvim -c Presenting README.md nvim -c Presenting README.org nvim -c Presenting README.adoc

🔬 Zoom in with your terminal emulator to make the slides bigger.

== Demo of markup elements

I use this README as a demo of the markup elements. The following sections don’t have to do anything with the plugin itself.

=== Markup and Lists

bolt and italic and italic and code and [line-through]strike

  • list
  • list ** list ** list *** list

=== Code block

[source,python]

def fib(n: int) -> int: if n < 2: return n return fib(n - 1) + fib(n - 2)

== DevMode

There is a dev mode that unloads+reloads the plugin which is handy if you’re developing the plugin.

.... PresentingDevMode ....