Volver a Vim

Neovim

I've always been a heavy user of the terminal. Ever since my university days where I'd be one of the first to daily drive Linux I've always found myself to be much faster in a keyboard centric environment.

Honestly, if anyone has ever worked with me you'd never see me use file browser type applications or barely touch the gui.

Not always so with my choice of IDEs though. In the past I've used many an IDE including:

  • Netbeans
  • Eclipse
  • PHPStorm
  • Visual Studio
  • Visual Studio Code
  • Sublime Text
  • Zed

Visual Studio Code is probably one of the ones that I've used the longest now. But I've never really been a fan. I've always had it in VIM keybindings mode but its usually really buggy and you're battling the way in which the application is obviously intended to function.

With the advent of Github copilot and its really sweet integration into VSCode I felt that I was sold on it forever.

What I found though is that VSCode isn't the only place in which you can find Copilot. With the explosion of new IDEs that are putting AI front and center such as IDX, Zed and Cursor it made me realise that I could have my cake and eat it so to speak.

I found that Zed was quite marvelous in its integration of AI. With an chatbot that is integrated into your codebase at the side that can be configured to go to a selection of models and sensible auto completions it provides an excellent experience. It's clearly faster too with it being Rust based.

But, with me being me and usually opting to use Linux as much as I can I found that getting Zed to work on Linux wasn't really the beaten path for it. Sure compiling it and running it in my popOS based machine was a breeze. But it'd crash and copy/paste would be problematic.

The solution was starring me right in the face. Return to VIM!

But it's been so long and with my muscle memory atrophied I barely remember H,J,K & L to move around. Additionally I heard that neovim was the new King of the castle. My old dotfiles probably aren't going to cut it any more with this fancy new lua based paradigm.

So I needed a tempate, something to get me started. Looking at the current trends I could see that NVChad and LazyVim were the most popular for returning n00bs like me in getting back into it. Here's what I wanted:

  • Good file tree management
  • Fast startup
  • Portable
  • Copilot integration that actually works well
  • A friendly way to manage git merges. I don't want to go back to the bad old days of accidentely committing merge text.
  • Something immersive
  • Good documentation

I gave NVChad a go at first and I found it intuitive and remarkably easy to set up. The problem came when I started trying to get copilot to work. For the life of me I just couldn't get it properly configured and reading some of the github issues I noticed that even if I did manage to get it to enable I may have problems with the keybindings.

So then I tried Lazyvim and honestly it's been a breath of fresh air. Again, the installation was facile and just worked and best of all it had a little help box that would pop up and remind aging brains such as my own what the key bindings were. The website is decent enough in telling you whats what with a page of key bindings to enlighten you.

The best though with Lazyvim I feel is the Lazyvim Extras. A selection of plugins that are configured already for you are trivial to install. One such plugin is my much beloved Copilot whom without I'd probably be fractionally productive.

Another excellent integration is Lazygit. This could be a blog article in itself but it works really well in neovim. Typically I use the CLI for git but when it comes to merge conflicts a GUI is the method that works better for me.

Anyway I'll be documenting my journey a little and I'll probably pop up a few tutorials or snippets of info as I come across them. I'd be interested to get any tips and tricks that you may have if you're a seasoned neovim user too so drop me a line on 𝕏 @kevincoyle.

Check out lazyvim at: https://www.lazyvim.org/