I switched to Neovim reasonably recently, and absolutely love it. I have always had problems with the vim plugins setup, but with Neovime and Lazy, I have never had any issues. It is extremely easy to use, and easy to get started with. Initially, I started with kickstart.nvim, and started trimming it down to reduce the number of dependencies and keep only the necessary stuff. In this page, I am listing my plugins, briefly describing why I need each of them. If you want to see my init.lua, you can find it here.

vim-fugitive

Dealing with git. I usually do everything in command line, apart from staging hunks. I really like pressing :G and being able to unfold/fold each of the files, interactively stage hunks, and commit only what I need.

vim-sleuth

Another great plugin from the same guy (tpope). This one automatically adjusts shiftwidth/expandtab based on the file/directory content.

undootree

This plugin saves your edit history in a tree-like way. You will never lose any changes by doing undo/redo, and can visually see your the diffs.

nvim-lspconfig

Configurations for all supported LSP servers.

nvim-cmp

Completion engine that becomes really powerful when used together with LSP.

gitsigns

Show git markers on the sign column, e.g. if the line was added.

nigthfox

High-quality and beautiful theme. I'm using nordfox colorscheme.

comment

Always struggled with multiline comments in vim? This plugin is for you. gcc comments a line you are on. gcj comments a line you are on and the one below. gc2j comments a line you are on and the two below. ...

telescope

Great fuzzy finder interface for neovim. I use it for everything: quickly navigating in the codebase, look for references, look for file/class structure, search over code warnings. This is one of my favourite plugins.

telescope-fzf-native

Native fzf implementation to improve the performance of telescope.

aerial

This enables looking at the file/class structure in a telescope window.

treesitter

Syntax highlighting and quick code selection (e.g. quickly select a whole function).

neogen

I use this one to generate a template for docstrings with a press of a shortcut.