When the basic vim configuration is set up, we need to think about extending vim.
There are many plugin managers out there. I use plug as a plugin manager, because it comes with a simple configuration
Before you can use plug you have to install it according the project description.
Basically you start with
call plug#begin()
Then you can add Plugs like
Plug '*github_user_name*/*project_name*'
and close it with
call plug#end()
Here are some plugs I use on a daily basis.
I use two color themes. One for my daily work, and one as a fallback.
During development you need to access the filesytem on a convinient way. NERDTree solves this problem.
Knowing only part of a filename? When you can use CtrlP for doing a fuzzy search on the file system.
Need a switch army knife for formating source code files? Here comes vim-autoformat.
Working with git? Tim Popes fugitive is a mature git plugin for vim.
Some json files may contain comments. Comments are not part of the json specification, so syntax highlighting may show errors.
jsonc solves this problem.
When you have many open buffers, it is helpful, to have some information about the current open file.
NeoVim comes with an build in terminal. When you want to reuse the same terminal, you can use neoterm.
Software testing is an essential part of software development. Before vim-test, you had to switch to another terminal to run tests there.
vim-test gives you the option to run tests from inside vim.
Putting all these plugins together you get the following file