NORMAL ~/wkd/p/hover :set skin=modern utf-8

hover.nvim

Rest the cursor on something that points at a file — a markdown link, or a path written as plain text — and a small float shows what it points at.

status
beta — Beta stage — active development. This repository is past its first shape and in active use, but the surface is not frozen: breaking changes are still possible. Pin a commit or tag if you depend on it.
category
Files & navigation
neovim
0.10+
repo
github.com/StefanBartl/hover.nvim
commits
168
help
:help hover

demo

recorded with VHS from demos/hover.tape in a clean Neovim — re-recorded weekly
what is shown when
  1. :Hover show on a markdown link -> markdown.nvim finds the target -> the file, previewed in place
  2. :Hover show on a bare path in prose -> resolved next to the buffer -> previewed the same way
  3. :Hover show on file.md#heading -> that section of the file, not its top
  4. :Hover show on https://stefanbartl.github.io/wkd/ -> curl fetches the page -> status, title, first words
video and PDF links · recorded with VHS from demos/hover-media.tape in a clean Neovim — re-recorded weekly · needs media.nvim , pdfport.nvim What the float can hold depends on the terminal: with a graphics protocol (kitty, sixel) it draws a frame of the video and page 1 of the PDF; this recording runs in one without, so it shows what hover.nvim says instead.
what is shown when
  1. :Hover show on an mp4 link -> media.nvim probes it with ffprobe -> type, size, resolution, length
  2. :Hover show on a PDF link -> pdfport.nvim renders page 1 in a graphics terminal -> here: what the float says
  3. :Hover why on plain prose -> the gate that refused, and what would let it through

screenshots

hover.nvim: A bare path in prose: the file it points at, in a float with the name in the border.
A bare path in prose: the file it points at, in a float with the name in the border.
hover.nvim: An image link: with images.nvim in a graphics-capable terminal, the picture itself is drawn into the float. Not something a recording can show, hence a screenshot.
An image link: with images.nvim in a graphics-capable terminal, the picture itself is drawn into the float. Not something a recording can show, hence a screenshot.

install

{
  "StefanBartl/hover.nvim",
  opts = {},
}

docs/

git log

  1. docs play_scale default is 2.5 in the type and the video example
  2. refactor shot: find the browser through lib.nvim.deps.require_tool
  3. fix show: don't let an unforced re-trigger close an explicitly requested hover
  4. fix directory: resolve a symlinked directory correctly, report a failed open
  5. feat directory: browse a directory hover's mini filetree
  6. docs link back to the wkd family site
  7. fix bindings: take back a buffer's autocmd records and group when it goes away
  8. ci bump leafo/gh-actions-lua and gh-actions-luarocks off Node 20
  9. ci bump JohnnyMorganz/stylua-action to v5 (Node-20 deprecation)
  10. ci publish ci-verified forward-only, fail-closed and with a lease
  11. ci bump the failure-log upload to actions/upload-artifact@v7 (Node 24)
  12. ci pin ui/documentation/pickers checkouts to their ci-verified branch

keys

j / k
next / previous line
gg / G
first / last line
⏎
open the line under the cursor
/
search the plugins
:
command line — Tab completes
:help x
vimdoc of a plugin (:e x = plugin page)
:ls · :log · :stack
plugin list · activity stream · dependency graph
:colo x
colorscheme
:set skin=
modern | tui
?
this help
esc
close