16 Essential Neovim Plugins
Aug 28, 2024
1. Plugin Manager: lazy.nvim
💤 A modern plugin manager for Neovim
The author of this plugin Folke is a great developer. He has many incredible plugins. I use lazy.nvim for managing my plugins. It is fast and the most modern plugin manager as of now.
2. File Tree: neo-tree.nvim
Neovim plugin to manage the file system and other tree like structures.
I don’t usually open the file tree as I rely on tools like “Telescope” for quickly jumping around the files. However, when I need to see the file tree, I use neo-tree.nvim. I use it with a keybinding to toggle the file tree, usually on new projects to get a sense of the project structure.
3. Language Server Protocol: nvim-lspconfig
Quickstart configs for Nvim LSP
LSP is a must-have for any serious developer. I use nvim-lspconfig to configure LSP for my projects. It can pair up with code completion plugins to create a modern developer environment. For example I have clangd for C++ projects and pyright for Python projects, “rust-analyzer” for Rust projects and so on.
LSPs provide: Code completion, hover information, diagnostics, jump to definition, find references, and more.
It was kind of hard for me to set up LSP for the first time when I was a Neovim novice. You can check my configuration on my dotfiles repository
4. Autocompletion: blink-cmp
Performant, batteries-included completion plugin for Neovim
blink-cmp plugs into your LSP setup and surfaces completions from many sources—language servers, buffers, file paths, and more—in one menu. You can enable or disable each source, tweak the order, and even write your own sources when you need something custom. The sorting system is flexible too, so you can push the suggestions you care about to the top. In short, it gives you smart, context-aware completions without getting in your way.
5. Treesitter: nvim-treesitter
Nvim Treesitter configurations and abstraction layer
Treesitter provides syntax highlighting, code folding, text objects, and more. It is the basis for many other plugins and generates a good syntax tree for your code.
6. Fuzzy Finder: telescope.nvim
Find, Filter, Preview, Pick. All lua, all the time.
Telescope is a game changer. It completely changed my workflow and it is the plugin that makes people “wow” at you when they see you using Neovim. Quickly jump anywhere, find anything.
7. File Explorer: oil.nvim
Neovim file explorer: edit your filesystem like a buffer
oil.nvim lets you edit your filesystem using Vim commands. It is highly intuitive and much faster than using a mouse or a traditional file explorer. I use it to quickly navigate around the project and modify the directory/file structure.
8. Tool Manager: mason.nvim
Portable package manager for Neovim that runs everywhere Neovim runs.
mason.nvim makes it easy to install and manage external developer tools from inside Neovim. I use it to keep language servers and related tooling organized in one place, so setting up a new machine or project is much faster and less error-prone.
9. Statusline: lualine.nvim
A blazing fast and easy to configure Neovim statusline plugin written in pure Lua.
lualine.nvim gives me the right context while coding without getting in the way. I keep mode, Git branch/diff, diagnostics, LSP status, file info, and cursor position visible at all times. In my setup I also show macro recording status and enable lualine extensions for plugins like Oil, Neo-tree, and Trouble.
10. Git Signs: gitsigns.nvim
Git integration for buffers.
gitsigns.nvim shows inline Git changes directly in the sign column and gives fast actions for staging, resetting, previewing hunks, and blaming lines. It helps me review edits while I code, without constantly switching to an external Git UI.
11. Diagnostics & Symbols: trouble.nvim
🚦 A pretty diagnostics, references, telescope results, quickfix and location list to help you solve all the trouble your code is causing.
trouble.nvim gives me a focused list view for diagnostics, references, symbols, quickfix, and location lists. I use it when I want a cleaner, more navigable overview than floating diagnostic popups.
12. Git TUI: lazygit.nvim
Plugin for calling lazygit from within Neovim.
lazygit.nvim lets me open LazyGit (which is one of my favorite developer toools) instantly from Neovim and handle commits, rebases, and history with a keyboard-first interface. It is one of my favorite ways to keep version control close to the coding flow.
13. Snippets: LuaSnip
Snippet engine for Neovim written in Lua.
LuaSnip speeds up repetitive code by expanding reusable snippets and allowing quick jumps between placeholders. Combined with completion, it makes boilerplate-heavy tasks much faster.
14. Formatting: none-ls.nvim
Use Neovim as a language server to inject diagnostics, code actions, and formatting tools.
I use none-ls.nvim to wire external formatters and diagnostics into the built-in LSP workflow. It keeps formatting and lint feedback consistent across projects, especially when the language server alone is not enough.
15. Notes Workflow: obsidian.nvim
Obsidian 🤝 Neovim
obsidian.nvim connects Neovim with my Obsidian vault for fast note search, daily notes, and link-based navigation. It is great for mixing coding and knowledge management in one editor.
16. Focus Mode: zen-mode.nvim
Distraction-free coding for Neovim.
zen-mode.nvim helps me switch into focused writing or coding sessions by reducing visual noise and centering the current buffer. I use it when I want a calmer, more deliberate editing environment.
Conclusion
This is all for now, I hope you find these plugins useful. I will keep updating this list as I discover new plugins. If you have any suggestions, feel free to reach out to me via email.
Updated On: March 3, 2026