Skip to content

๐Ÿš€ Hop to files, not just words. Terminal-friendly file jumping for Neovim.

License

Notifications You must be signed in to change notification settings

nolleh/warp.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

14 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

warp.nvim

A motion plugin for file jumping. Hop to file paths, not words.

Neovim License

Demo

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

Why warp.nvim?

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

Features

  • 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:42 and file.lua:42:15 patterns, 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 .md files (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 S or V to open in split windows

Hint Colors

Type Color Example
File path Blue src/utils.lua:42:15
URL Green https://example.com
Markdown link (anchor) Orange [Demo](#demo)

Installation

lazy.nvim

{
  "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)
}

packer.nvim

use {
  "nolleh/warp.nvim",
  config = function()
    require("warp").setup()
  end
}

Usage

  1. Press <leader>w (default) or run :Warp
  2. Hint labels appear on detected file paths
  3. Type the hint to jump

That's it. No configuration needed.

Split / Vsplit

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

Keymap Configuration

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
})

License

MIT

About

๐Ÿš€ Hop to files, not just words. Terminal-friendly file jumping for Neovim.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published