Key Takeaways

  • Its keyboard-first workflow is the key to Neovim’s power, enabling intuitive and powerful editing actions.
  • Setting up a basic configuration for Neovim is easy with tools like kickstart.nvim or even full-blown distributions.
  • Neovim is endlessly customizable with a rich plugin ecosystem, allowing you to extend the app indefinitely.

While other editors may offer more visual flair and a friendlier aesthetic, Neovim traces its roots back to an editor for the 1970s. So why is it my text editor of choice? Mainly because it has superpowers you simply won’t find in most other editors.

A Keyboard-Centric Workflow

Mouse support is built into Neovim (as it is in Vim, the text editor it’s descended from), and it’s even enabled by default. That said, the power of Neovim lies in its keyboard control. Like Vim and vi before it, Neovim uses different modes for entering and editing text, enabling powerful editing actions.

For example, the ‘d’ key performs a delete or cut action. To delete an entire line, simply type ‘dd.’ Add a number, and the results are predictable: ‘5dd’ will delete the next five lines.

Tutor showing how to delete lines in in Neovim.

This compositional style of using commands means that, while there is an initial learning curve, once you start to learn a few basic commands, it’s incredibly intuitive to string them together in interesting ways.

Everything I’ve mentioned above is as true of Vim as it is Neovim, and I was a happy Vim user for quite some time. What drew me to Neovim is its approach to handling plugins and the cool features this has allowed third-party developers to add to the editor.

Getting a Basic Config Set Up Is Easy

While you can certainly use Neovim with a simple .vimrc file, or even no config file at all, you can easily lose yourself in tinkering with the various options. And that’s before you even start adding plugins.

That said, there are plenty of tools that make setting up and using a powerful Neovim setup incredibly easy. There are full-blown distributions like LazyVim that turn the simple editor into a full-blown IDE.

If you’re looking for something somewhere in the middle, you can opt for my choice. I use kickstart.nvim. It’s not a full-blown distribution, but more of a starter kit for building your own custom config. It comes with a bunch of useful plugins pre-configured, but then you can add your own for various programming languages or other features.

Neovim Is Endlessly Customizable

Whether you use something like kickstart.nvim or cobble together your own configuration, Neovim’s rich plugin ecosystem means you can extend the app almost indefinitely.

I write code as a hobby, but the vast majority of my time in a text editor is spent either writing in Markdown, or taking notes. Neovim’s built-in Markdown support is pretty good, but for quick and easy notetaking, I use a plugin called Telekasten to search through and create notes.

Adding this to my configuration meant simply copying and pasting a few lines from the Telekasten GitHub into my config file, and pointing the plugin toward my notes directory. Setting up any other plugin is typically this easy, and it allows you to customize the way the editor works to fit around your own ideal workflow.

A simple example: As I’m writing this very article and finishing a section, I tap a few keys to open a plugin that integrates the LazyGit app. With a few more keypresses, I’ve committed the changes and pushed them to the remote repository that stores my works-in-progress, then popped back into editing the article. This is a relatively recent addition to my workflow, but it comes nearly as naturally as saving a file at this point.

Screenshot of the LazyGit interface inside Neovim.

Sure, I had to configure this on my own (although I did shamelessly steal the integration from LazyVim). Even so, that I was able to easily build this and other features like Telekasten into my setup showcases the power of Neovim’s design. It also speaks to how healthy the community of developers around the editor is.

The Vim Workflow Takes Time to Learn

While I love Vim and Neovim, it wasn’t exactly love at first sight. As I imagine is the case for many people, when I first encountered a blank black screen with an unblinking cursor, I wondered what people saw in this editor they liked so much.

Looking around the internet, I’d see screenshots of Vim setups with syntax highlighting, a tree-style file explorer in the sidebar, and other modern features. I was no stranger to diving into config files, but I could tell that this was going to take more than the few lines I’d tweaked in my ~/.bashrc file.

I can’t remember what it was that kept me coming back, but after piecing together various bits from config files I found scattered across Github, I started to understand the power of Vim and, later on, Neovim. That said, I tend to be someone who gets a working config and sticks with it. If that isn’t the case for you, Neovim could be a slippery slope.

Customizing Neovim Can Be a Rabbit Hole

Pick a text editor, and there’s probably a joke about its users spending more time customizing it than actually using it to get any work done. It may be true of VS Code, it’s definitely true about Emacs, and it’s the same for Neovim.

Even more so than Vim, it’s easy to get caught up tweaking your Neovim config because even once you’ve perfected the functionality, you can make it more modular. Using the Lua programming language instead of the more limited Vimscript means you can break your config up into multiple files for better organization.

Screenshot of keymaps in the Neovim config file.

Why stop there? Do you notice that Neovim takes around half a second to start when you launch it? That could be faster if you lazy-load plugins, only loading them when they’re actually necessary.

Now that half-second of startup time is only a quarter of a second. Think of all the time you’ll save!

Don’t let this happen to you. It’s easy to avoid falling down the hole of endless customization as long as you stay focused on why you’re using the editor in the first place, not how you might use it in the future.

There Are Easier Editors Out There

While this is an article mainly about how much I love Neovim, it’s certainly not for everyone, and it isn’t the easiest editor out there. Even when it comes to editors that run in the terminal, there are a bunch of other great text editors for Linux. If you prefer a graphical editor, there are plenty of editors that will feel much more familiar.

That said, if you’re willing to experiment, Neovim is absolutely worth a try. It may take a few tries to get to know it, but if you’re anything like me, you’ll find something to keep you coming back.