I started using Neovim

Yes, it's 2022

Published on

It’s 2022 and I’m trying to move to Neovim. I know, it sounds like a joke.

I’ve been using Visual Studio Code for years and it’s nearly perfect. I am so productive using it. There is a plugin for everything and they work fantastically.

But in the meantime, things have changed. Among those things there is my career path, so new needs have emerged.

So what are those new needs?

I’ve started working more and more in random places

Now you are thinking, “What does the editor have to do with it?“.

A lot.

The combination of Visual Studio Code and Google Chrome is the recipe for a battery murder. In very few hours the battery is already drained.

When you are outside you don’t always have a power outlet available but you still want to work as long as possible. For example, if you are at a conference and there are not enough outlets you don’t want to fight to charge the laptop.

Neovim consumes way less energy.

(Sidenote: I’m looking for a replacement for Chrome too. It too demanding on the resources and the battery. At the moment I’m using Brave but is still too heavy.)

I’m working a lot more on servers—like many years ago 🥹

Knowing how to use Neovim is very handy when working with/on servers. Just install Neovim on the server and start working. Also, you can put your configuration on the server and you get the replica of your local dev environment.

Awesome.

When I was working with Emacs vanilla it was painful and slow. Having the ability to work as fast as on my computer is 💯

I want speeeeeed 🏎💨

The way Neovim works allows reaching insane speed. I’m not talking about loading time when typing vi my_file.txt. Neovim is famous for its shortcuts and modes that allow forgetting about the mouse.

I want to avoid using the mouse as much as I can. I hate when I have to reach it.

The learning curve is steep and it seems not worth it but I see real potential. I’ll come back with an update post about my Neovim journey, it’s just too early to say “it’s worth it”.

Other reasons

  • When I started working as a developer my editor was Emacs (vanilla). I enjoy this kind of raw environment.
  • Neovim is without Microsoft things in it. The less the better.

Anyway yes, Neovim. Not standard Vim. Neovim has shorter development cycles and it’s community driven. Vim is not.

The story so far

To be honest the title of the post should be “I started configuring Neovim”.

I faced some phases:

  • I tried to configure it from scratch, without knowing what I was doing
  • Then I tried to use nvim-basic-ide by the LunarVim creators but without that much success
  • I thought that I should try a full distro configuration and I choose AstroNvim

AstroNvim

Even if it is a ready-made configuration I’ve spent a lot of time understanding how it works. Without any knowledge of Lua, it was hard to understand how to use the user config.

After a lot of work, I managed to understand how to add my preferences.

Everything was working apart from my main goal. The combination between Django/Jinja and Tailwind was broken.

I could work with Django but I couldn’t ignore that Jinja was broken. Most of the websites that I have to manage are created using Pelican so Jinja is foundamental.

The revelation

So I decided to try again creating my configuration. Mainly to have more control over the installed packages. If I have to fix particular problems I’ll need to add particular configurations.

I must say that all those phases were useful to understand Neovim. It is useful to look at the source code made by someone else. Now I should have somewhat comprehension of Neovim configuration.

Now that I want to restart from zero I’m trying to consider all this business as a hobby. No claim to use it right away to be 100% productive.

At the same time, I want to explore new types of mechanical keyboards. To obtain less confusion on the keyboard I want one with fewer keys. I have already ordered custom keycaps. But also this thing is for another article.

So where will I start?

By installing and configuring some basic plugins.

By asking on Reddit I discovered a different approach to getting language support. So I want to try coc.nvim. It is one of the most starred repositories in the Neovim world. I hope to be able to add support for Tailwind.

Then Telescope and Tree.

The rest I will find out gradually 🔬


Ok, the article got out of hand, I wrote too much. All this wave of novelty has made me want to write in full about everything I’m doing.

Thanks for reading to the end! 🎉

If you’d like to stay in touch Follow me on X and Mastodon.

I'm active in many places on the internet, checkout the footer or the links page.