Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

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

diffview.nvim

NOASSERTIONLua

A Neovim plugin providing a single tabpage interface for reviewing git diffs and file history with merge conflict resolution.

GitHubGitHub
5.7k stars205 forks0 contributors

What is diffview.nvim?

Diffview.nvim is a Neovim plugin that creates a single tabpage interface for reviewing all modified files across any git revision. It solves the problem of manually opening multiple diff splits by providing a unified view where users can easily cycle through changed files, explore commit history, and resolve merge conflicts directly within the editor.

Target Audience

Neovim users who frequently work with git and need an efficient way to review diffs, explore file history, and resolve merge conflicts without leaving their editor.

Value Proposition

Developers choose Diffview.nvim for its seamless integration with Neovim's native diff mode, comprehensive merge conflict resolution tools, and intuitive single-pane workflow that significantly speeds up code review and version control tasks.

Overview

Single tabpage interface for easily cycling through diffs for all modified files for any git rev.

Use Cases

Best For

  • Reviewing all changes in a git commit or branch within Neovim
  • Resolving merge conflicts during rebase or merge operations
  • Exploring the commit history of specific files or directories
  • Staging individual hunks directly from diff views
  • Comparing changes between different git revisions efficiently
  • Visualizing 3-way or 4-way diffs for complex merge scenarios

Not Ideal For

  • Teams relying on GUI-based version control tools like SourceTree or GitHub Desktop for visual diffs
  • Projects requiring integrated code review with platforms like GitHub or GitLab, as it's local-only
  • Developers using Vim instead of Neovim, due to its Neovim ≥ 0.7.0 requirement
  • Users who prefer lightweight, command-line git diffs without plugin overhead

Pros & Cons

Pros

Unified Diff Interface

Consolidates all modified files for any git revision into a single tabpage, eliminating the manual hassle of opening multiple diff splits, as described in the introduction for streamlined code review.

Advanced Merge Resolution

Provides 3-way or 4-way diff layouts for merge conflicts during rebase or merge, with dedicated mappings to choose conflict versions, showcased in the merge tool section with examples like conflict_choose actions.

Comprehensive File History

Acts as a porcelain interface for git-log, listing commits affecting specific paths and displaying changes in diff splits, supporting options like filtering and line evolution tracing, as highlighted in the file history showcase.

Flexible Layout Configuration

Offers multiple diff layouts (e.g., diff2_horizontal, diff3_vertical) configurable per view type, allowing customization for different workflows through the setup function.

Interactive Staging Workflow

Enables staging individual hunks by editing index buffers directly from diff views, with keymaps for toggling stage entry and staging all, integrating git operations seamlessly into the review process.

Cons

Neovim and Git Version Lock-in

Requires Neovim ≥ 0.7.0 and Git ≥ 2.31.0, excluding users on older systems or editors, and assumes prior knowledge of nvim's builtin diff-mode, as noted in the 'Familiarize Yourself' warning.

Complex Lua Configuration

Setup involves a lengthy Lua table with numerous options and keymaps, which can be overwhelming for users new to Neovim plugin management or Lua scripting, as seen in the extensive configuration example.

Keymap Conflict Potential

The extensive default keymaps might clash with other Neovim plugins, requiring careful customization to avoid conflicts, as indicated in the keymaps section where mappings can be disabled individually.

Limited Remote Collaboration

Focuses solely on local git operations without built-in integration for cloud-based code review platforms, which may hinder teams using tools like GitHub or GitLab for collaborative workflows.

Frequently Asked Questions

Quick Stats

Stars5,723
Forks205
Contributors0
Open Issues104
Last commit2 years ago
CreatedSince 2021

Tags

#git-diff#version-control#developer-tools#neovim-plugin#git#neovim-lua#merge-tool#neovim#lua#neovim-lua-plugin#code-review#vim-plugin#diff

Built With

N
Neovim
L
Lua

Included in

Neovim20.6k
Auto-fetched 1 hour ago

Related Projects

gitsigns.nvimgitsigns.nvim

Git integration for buffers

Stars6,989
Forks292
Last commit9 days ago
neogitneogit

An interactive and powerful Git interface for Neovim, inspired by Magit

Stars5,548
Forks349
Last commit1 day ago
lazygit.nvimlazygit.nvim

Plugin for calling lazygit from within neovim.

Stars2,334
Forks90
Last commit7 months ago
codediff.nvimcodediff.nvim

A Neovim plugin that provides VSCode-style diff rendering with two-tier highlighting (line + character level) in side-by-side and inline layouts, using VSCode's algorithm implemented in C.

Stars1,479
Forks83
Last commit21 hours 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