9 Essential Plugins for Neovim

Published at Aug 28, 2024

3 min read
#neovim
#text editor

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

4. Autocompletion: cmp-nvim-lsp

nvim-cmp source for neovim builtin LSP client

Adds extra completion capabilities to LSP. It is paired with nvim-lspconfig. It is not just a function completion, as an example you can configure it to autocomplete the file path in your system. For more advanced usage, you can also implement your own sources and you can create custom sorting for different sources.

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. Formatting: none-ls.nvim

null-ls.nvim reloaded / Use Neovim as a language server to inject LSP diagnostics, code actions, and more via Lua.

The standart recommendation for formatting was “null-ls” but it is discontinued. I use none-ls.nvim for attaching formatters such as prettier to LSP. Most LSPs have formatting capabilities but when they don’t or when you only want to capabilites of a formatter, you can use none-ls.nvim.

9. Dashboard: dashboard-nvim

vim dashboard

Starting screen for vim. It is mostly visual but there are two technical features that might increase your productivity:

  • You can see the recent files and recent projects and open them with a single key press.
  • You can bind keys and create shortcuts for your most used commands. For example in my starting screen, when I press “f” it opens up a Telescope finder for files where I can quickly jump to any file in the project and start working. “o” for oil.nvim file explorer to manage the project structure and so on.
dashboard-nvim
dashboard-nvim

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.

← Back to Blog