Track 7 introduced gitsigns.nvim for inline hunks. Pair it with a heavier git client for branch operations and you cover the spectrum:
gitsigns.nvim — the inline layer. Hunks in the gutter, stage/reset/preview, blame inline. Best for editing loops.
vim-fugitive — the deep git layer. :Git as a Vim command interface to every git operation. :Git blame opens a navigable blame view; :Git log, :Git diff, :Git rebase -i all work. Best for the heavy operations.
Or skip both for branch ops and use lazygit in an adjacent tmux pane. Track 7's pattern.
Most people use gitsigns + lazygit. fugitive is for the people who prefer everything inside Vim.
oil.nvim — edit your filesystem like a buffer
oil.nvim is the surprise plugin everyone falls for. Open the current directory as a regular Vim buffer, and the filesystem becomes a buffer: lines are filenames, edit them with normal Vim motions, save with :w — Vim renames, moves, creates, deletes accordingly. Want to rename five files with capture-group regex? :%s/old/new/ + :w — done.
The other file-explorer school
If you prefer a sidebar tree (VS Code-like), neo-tree or nvim-tree is the alternative. Functional, familiar, but doesn't give you the buffer-as-filesystem editing power. Try oil for a week before reaching for a sidebar tree.
The minimal setup
The blocks below add gitsigns, fugitive (small footprint, doesn't activate until you call :Git), and oil. With lazy-loading, none of these slow startup; oil opens instantly when you press -.
Editing the filesystem like a buffer is the killer feature. Drag-rename in a GUI tree is fine for one file. For ten files at once, oil + visual-block editing on filenames + :w is the move. The buffer model scales; tree views don't.
Add oil.nvim. Press - in any buffer to open the current directory. Try renaming a file by using cw on its line and saving. Try creating a new file by adding a line and saving. Then check the filesystem (ls in a tmux pane) — your edits actually applied. If you also have gitsigns + fugitive: open a file with uncommitted changes, navigate hunks with ]c / [c, stage one with <leader>hs, then :Git to see the staged change in fugitive's status buffer.
Progress
Progress is local-only — sign in to sync across devices.