Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Neovim
  3. portal.nvim

portal.nvim

MITLuav0.10.0

A Neovim plugin that enhances navigation through location lists (jumplist, changelist, quickfix) using labelled floating windows called portals.

GitHubGitHub
366 stars9 forks0 contributors

What is portal.nvim?

Portal.nvim is a Neovim plugin that reimagines navigation through location lists like the jumplist, changelist, and quickfix list. Instead of cycling through entries with commands like `<c-o>` and `<c-i>`, it presents locations as labelled floating windows (portals) that users can jump to directly. It solves the problem of disorienting and inefficient list traversal by providing visual context and instant access.

Target Audience

Neovim users who frequently work with location lists, such as developers navigating codebases, debugging with quickfix, or managing complex edit histories. It's especially valuable for those seeking more control and visibility over their navigation flow.

Value Proposition

Developers choose Portal.nvim because it transforms a fundamental but often cumbersome aspect of Vim-style editing. Its visual portals reduce cognitive load, its extensible query system allows for precise navigation, and its seamless integration with Neovim's built-in lists and popular plugins makes it a powerful upgrade over default motions.

Overview

Neovim plugin for improved location list navigation

Use Cases

Best For

  • Quickly jumping to specific locations in a long jumplist history
  • Filtering quickfix results to show only entries in modified buffers
  • Combining jumplist and grapple tag navigation in a single search
  • Creating custom navigation workflows with predicate-based filters
  • Enhancing code exploration with visual context for jump destinations
  • Replacing `<c-o>`/`<c-i>` with a more intuitive and direct interface

Not Ideal For

  • Neovim users who prefer minimal, keyboard-only navigation with default commands like `<c-o>` and `<c-i>` without floating windows
  • Developers working in terminal environments with poor floating window support or over SSH with limited GUI capabilities
  • Teams relying on custom location lists not covered by built-in queries and lacking Lua expertise to implement iterators
  • Workflows needing automatic, context-aware navigation without manual portal invocation for every jump

Pros & Cons

Pros

Visual Navigation Interface

Replaces sequential list traversal with labelled floating windows that show context snippets, allowing direct jumps and reducing disorientation from commands like `<c-i>`.

Extensible Query System

Supports custom filters, slots, and a declarative iterator API for precise control over searches, enabling composable queries across multiple location lists.

Seamless Plugin Integration

Integrates with Grapple and Harpoon out-of-the-box, extending navigation to tagged files and marks without extra bridging code.

Composable Location Lists

Allows combining built-in lists like jumplist and quickfix into a single search, streamlining complex debugging or code exploration workflows.

Cons

Configuration Overhead

Requires manual keybind setup and Lua knowledge for advanced features like custom filters, unlike plug-and-play navigation plugins.

Neovim Version Lock-in

Depends on Neovim >= 0.8 and optionally 0.9 for features like floating window titles, limiting compatibility with older setups.

Steep Learning Curve

The iterator API and custom query logic involve complex Lua programming, making it inaccessible for users unfamiliar with Neovim's internals.

Limited Default Utility

Without customization, basic portal usage might not offer significant advantages over native motions for simple jumplist navigation.

Frequently Asked Questions

Quick Stats

Stars366
Forks9
Contributors0
Open Issues5
Last commit2 years ago
CreatedSince 2022

Tags

#productivity#vim-motions#neovim-plugin#plugin#editor-enhancement#neovim#nvim#quickfix#navigation#floating-windows

Built With

N
Neovim
L
Lua

Included in

Neovim20.6k
Auto-fetched 1 day ago

Related Projects

leap.nvimleap.nvim

Neovim's answer to the mouse 🦘

Stars5,029
Forks53
Last commit5 days ago
flash.nvimflash.nvim

Navigate your code with search labels, enhanced character motions and Treesitter integration

Stars4,210
Forks89
Last commit1 month ago
lightspeed.nvimlightspeed.nvim

deprecated in favor of leap.nvim

Stars1,553
Forks27
Last commit2 years ago
precognition.nvimprecognition.nvim

💭👀precognition.nvim - Precognition uses virtual text and gutter signs to show available motions.

Stars1,380
Forks16
Last commit26 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub