Upgrading NeoVim Config with Kickstart.nvim

Photo of author

Recently, I was exploring how to configure NeoVim for React/TypeScript development and came across AstroNvim. It blew my mind 🤯. It looked so beautiful!

These are known as NeoVim “frameworks“. There are more in the market: e.g. NvChad. I don’t know what changed cause I don’t remember seeing so many (any?) frameworks when I got started with NeoVim three years ago. I am still using basic init.vim config to configure some basic plugins which doesn’t look as awesome as these frameworks.

Ui of AstroNvim
UI of AstroNvim. Isn’t it beautiful?

I guess it’s time I upgraded my NeoVim configs to stay updated.

AstroNvim vs Kickstart

While AstroNvim looks super cool, it has a hands-off approach to configuration which I don’t prefer. I would like to know why and what is inside my config files. So I searched for alternatives and I found Kickstart.

Kickstart.nvim: A launch point for your personal nvim configuration

The author of Kickstart.nvim claims it’s not a framework. It’s more like a basic configuration to use as a starting point. It looked far more advanced and aesthetic than my current config even with the basic configurations.

Here is a 30-minute video explaining everything about Kickstart.nvim by the author himself. If you don’t have the time, just watch the first 3 minutes for a quick introduction.

What I like about Kickstart.nvim

Here are some reasons why I like Kickstart:

  • Well-commented config files
    • It has only a single file init.lua which is very detailed.
  • Lua-based config files
    • I used init.vim before. In comparison, using Vim API through Lua felt cleaner.
    • I had to learn Lua separately, but it wasn’t a big deal. All programming languages are the same with few differences here and there. Also, basic understanding is enough to get things done since I won’t be writing config from scratch.
  • Automatic Plugin Manager Installation
    • If you don’t have a plugin manager, it downloads lazy.nvim for you automatically. Previously, I had to configure plugin-manager separately from install-script. This simplified my install script a bit.
    • Lazy.nvim seems much more modern than vim.plug.
  • Helps you master key binds
    • I create useful keybinds but then forget about them.
    • Kickstart uses WhichKey to help you remember your Neovim keymaps, by showing available keybindings in a popup as you type.
  • Telescope for Fuzzy Finding
    • I used fzf.vim before. I found Telescope to be much more aesthetic.
  • Pre-configured LSP with Mason support
    • Ok, I haven’t figured this out completely yet. I have a vague sense of how LSP works. I used YouCompleteMe previously to get autocompletion for C/C++, but Java/Kotlin never worked properly.
    • I am hoping to master this one this time. I will write up a new post if I manage to get this working. For now, I am keeping the basic settings Kickstart has provided.
    • If you need to install any additional package for LSP, the Mason plugin takes care of it. Again, I have no clue how this works yet.

Migrating to Kickstart from my Old Config

My old config didn’t have too many customizations so it didn’t take too long. I first backed up my old config before switching to Kickstart completely and then filled in the gaps I noticed. Here are the additional things I added to Kickstart:

And that’s it.

Conclusion: I love it

My configuration is much more organized than before. There are still some parts of the configuration I don’t understand and wish to learn eventually. But overall, I love it! ❤️

Some next steps I have in mind:

  • Understand the LSP configurations more and configure Java/Kotlin/Python servers.
  • Check out what configuration AstroNvim is using and port the ones I like into my configuration.

🗞️ Don’t miss the latest posts!

Subscribe to the Weekly Newsletter

I won't spam. Promise!

Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments