# diffnav A git diff pager based on [delta](https://github.com/dandavison/delta) but with a file tree, à la GitHub.

> [!CAUTION] > This is early in development, bugs are to be expected. > > Feel free to open issues.
Demo
## Installation Homebrew: ```sh brew install dlvhdr/formulae/diffnav ``` Go: ```sh go install github.com/dlvhdr/diffnav@latest ``` > [!NOTE] > To get the icons to render properly you should download and install a Nerd font from https://www.nerdfonts.com/. Then, select that font as your font for the terminal. > > _You can install these with brew as well: `brew install --cask font--nerd-font`_ ## Usage ### Pipe into diffnav - `git diff | diffnav` - `gh pr diff https://github.com/dlvhdr/gh-dash/pull/447 | diffnav` ### Set up as global git diff pager ```bash git config --global pager.diff diffnav ``` ## Configuration - Currently you can configure `diffnav` only through delta so [check out their docs](https://dandavison.github.io/delta/configuration.html). - If you want the exact configuration I'm using - [it can be found here](https://github.com/dlvhdr/diffnav/blob/main/cfg/delta.conf). ## Keys | Key | Description | | :---------------- | :------------------- | | j | Next file | | k | Previous file | | Ctrl-d | Scroll the diff down | | Ctrl-u | Scroll the diff up | | e | Toggle the file tree | | t | Search/go-to file | | q | Quit | ## Under the hood `diffnav` uses: - [Bubble Tea](https://github.com/charmbracelet/bubbletea) for the TUI - [`delta`](https://github.com/dandavison/delta) for viewing the diffed file Screenshots use: - [kitty](https://sw.kovidgoyal.net/kitty/) for the terminal - [tokyonight](https://github.com/folke/tokyonight.nvim) for the color scheme - [CommitMono](https://www.nerdfonts.com/font-downloads) for the font