Why I work in Neovim

Over a year ago, I posted that I was switching to using Neovim full-time for my development work.

I’d used Vim one file at a time on remote servers, and added Vim plugins in other IDEs and editors, so I was already familiar with a lot of the key bindings and motions before I decided to use it full-time.

Still, it was tough to begin with, but once I’d learned how to configure Neovim, I also learned that being able to customise and extend it as much as you need to is one of its main advantages compared to other IDEs and code editors.

TJ DeVries - a Neovim core team member - has recently coined the term “PDE” (a personalised development environment) which, for me, describes Neovim perfectly.

Currently, I have a fuzzy-finder to quickly open files (as well as many other things), an LSP client to add code intelesense, auto-completion, refactoring tools, custom snippets, and very recently, a database client and a HTTP client.

Just as important to me, I’ve found a growing community of other Neovim users who stream on Twitch, post YouTube videos, write blog posts, or publish their dotfiles for others to see and reference.

I’ve learned Lua. Not just for my own Neovim configuration, but I recently wrote and open-sourced my own simple plugin.

Like Git, I enjoy and prefer using tools that I can configure and adapt to my workflow.

Given Neovim’s flexibility and configurability, its expanding feature set both in core and community plugins, and the growing community, I think that Neovim is going to be something that I continue to use and adapt for a long time.