9 Essential Plugins for Neovim
Published at 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: 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.
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. 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.
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.