AstroNvim An IDE without an IDE
Table of Contents
So you want to joint he Vim/Neovim/… club but you don’t want to take care of all you plugins yourself?
Why are you here? You’re supposed to tailor Vim manually exacly to your usecase so you get rid of bloat and are the most productive. DO NOT USE PREMADE CONFIGS
Is what I would’ve said if I was one of the toxic people LOL. Who really wants to mess around for a month to add all your needed plugins? Evel learning the keybinds is pain!
Neovim⌗
Neovim is a for of Vim. If you don’t know what Vim is, it’s a console text editr with really weird
keybinds. I think you’ve heard the jokes about How to exit Vim
(it’s :q
, you’re welcome 😉).
It’s pain to learn as it’s keybinds are really weid and it has 3 modes it works in and the modes have their special keybinds as well!
Now to Neovim. Like I said, it’s a for of Vim. It’s adds some functionality to it notably the LUA scripting language. It can run most of the Vim plugins but Vim cannot run Neovim plugins. I don’t really care about the differences as long as everything works as I want and I have all the plugins I’d want.
Configuration⌗
The configuration is written in LUA, like the plugins. Yeah… I didn’t really use it before messing around with Neovim. It’s not a bad language but for me it was confuging.
Sometimes it uses brackets, sometimes identation. Like wtf? Choose on!
One plugin has config function idented, other has it with brackets, the third one uses end
keyword…
It’s probably me just being an idiot not willing to learn the lagnuage properly, but still…
AstroNvim⌗
Let’s talk about AstroNvim finally! Neovim It’s a config for Neovim. Aaaand what’s special about this config you may ask?
Well it provides a nice api that allows you to simply create a user config while they, the developers of AstroNvim, take care of the core functionality.
You don’t have to take care of all the breaking changes on Neovim or the plugins that are included out of the box. Theyhttps://stfka.eu/ will take care of that and you’ll have way less stuff to worry about
That’s not to say you won’t encounter breaking changes. For example when Neovim 8.0 came out AstroNvim had to be modified in a way that broke the previous user configs, hence the new AstroNvim 2.0 version.
The experience⌗
When you firs open it, it doesn’t look like Vim/Neovim at all. You have a dashborad in front of you. Ok? So what now. You open the default keybins in browser and find out that there’s a nice plugin whichc shows you all the available keys! Because who rhttps://stfka.eu/emembers it all all the time.
Then you figure out it has an explorer, a terminal, it can nicely show git diffs, nice syntax highlighting, language servers, formatters, intellisense, you can look up man pages, search files and many many more!
Honestly there’s so much stuff in the base config that I’d be here for a week talking about it all.
It’s a really nice package which has most of the functionality I’m used to from VSCode but it’s cleaner, faster and can be run over ssh with basically any connection quality.
What I’m missing⌗
What I’m missing is a debugger, but don’t worry! It’s comming! It’s in nightly
as of writing this.
And I added my own for the time being. It’s called Vimtex
and it works really well. I’ll be trying
out DAP
, the debugger they’re implementing, and I’ll see which one suits me better.
Learning⌗
Vim keybinds⌗
Well, before you start using Neovim, you have to know the keybinds, otherwise you won’t be able to do anything in it.
I learned the basics in VSCode. It was nice as I had my IDE and I could fall back to the behaviour I knew if I needed to. This may not be for everybody. It’s pretty annoying to learn the keybinds and keep using them and I found myself almost turning the extention off multiple times. But I continued using it and now I now I have all the basic keybinds in my muscle memory.
The extensions⌗
Right, the extensions. Like I mentioned you get get Vim functionality in VSCode. I know currently of 2 plugins that will provide that:
I used the Vim extension, but later I read that the Neovim one is more mature therefore better? I don’t know. I worked perfectly fine with the Vim one but you may want to look into these extensions and decide for yourself. But if you plan on Learning in VSCode you may want to stick to the Vim extionsion as the tutorial I’ll mention is made with that one in mind.`
Learning in VSCode⌗
So lets learn!
To learn the keybinds I Used the Learn Vim extension. It’s basically a document with a text file where you’re trying out the keybinds. It’s really well written and highly recommend it if you have some free time.
Online resources⌗
There are many tutorials but one thing I really liked was a game with Vim movement. It was nice as you could have a little bit of fun while getting the keybinds into your muscle memory.