A motion plugin for file jumping. Hop to file paths, not words.
wrap.nvim-demo.2026-01-29.at.9.54.56.PM.mov
warp.nvim-markdown-demo.2026-02-03.at.10.35.56.PM.mov
You're in a terminal buffer. A test fails. The error shows src/utils/parser.lua:42:15.
With other plugins? Copy the path, switch windows, open file, go to line, find column.
With warp.nvim? Press one key, type the hint, you're there.
Error: assertion failed
--> src/utils/parser.lua:42:15 [a] <- hint appears here
expected: true
got: false
- Works everywhere - Regular buffers, terminal buffers, floating windows
- No terminal integration needed - Unlike kitty hints, works with any terminal emulator
- Line & column aware - Detects
file.lua:42andfile.lua:42:15patterns, jumps to exact position - URL support - Opens URLs in your default browser (hints shown in green)
- Markdown link support - Follows
[text](target)links including anchor links in.mdfiles (hints shown in orange) - Wrapped path support - Handles file paths broken across lines by terminal width
- Smart window targeting - Opens files in your editor window, not the terminal
- Split/Vsplit support - Prefix with
SorVto open in split windows
| Type | Color | Example |
|---|---|---|
| File path | Blue | src/utils.lua:42:15 |
| URL | Green | https://example.com |
| Markdown link (anchor) | Orange | [Demo](#demo) |
{
"nolleh/warp.nvim",
config = true, -- Default keymap: <leader>w
-- Or customize:
-- config = function()
-- require("warp").setup({
-- default_keymap = "<leader>wf", -- or false to disable
-- })
-- end,
keys = { "<leader>w" }, -- your binding key (trigger lazy loading)
}use {
"nolleh/warp.nvim",
config = function()
require("warp").setup()
end
}- Press
<leader>w(default) or run:Warp - Hint labels appear on detected file paths
- Type the hint to jump
That's it. No configuration needed.
Open files in split windows by prefixing the hint with uppercase S or V:
| Input | Action |
|---|---|
a |
Open in current window (edit) |
Sa |
Open in horizontal split |
Va |
Open in vertical split |
Default keymap is <leader>w. You can customize or disable it:
require("warp").setup({
default_keymap = "<leader>wf", -- Custom keymap
-- default_keymap = false, -- Disable default keymap
})MIT
