>_
Bahadır Aydın

Bahadır Aydın

Software Engineer

16 Essential Neovim Plugins

Aug 28, 2024

5 min read

1. Plugin Manager: lazy.nvim

💤 A modern plugin manager for Neovim

lazy.nvim
lazy.nvim

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.

neo-tree.nvim
neo-tree.nvim

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

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.

nvim-treesitter
nvim-treesitter

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.

telescope.nvim
telescope.nvim

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

← Back to Home