So, I’ve been a Neovim user for a few years now. I started as most of you (I assume) with vim, and just kept on using and expanding that config file over the years.
I only recently realized there’s quite a split between the Vim and Neovim plugins and that the Neovim community is pushing Lua as a better development platform. From what I can see, some users are switching their configs from Vimscript to Lua. To be honest all I know about Lua is that it means moon in Portuguese…
Should I too? What would the advantages be? What would the disadvantages be? For those who did switch, why did you switch and what was your experience? For those who didn’t why did you not?
p.s. review (roast) my dotfiles
edit: thank you all for your input! I will consider slowly switching to lua by modifying only some parts of the config as some of you suggested.
Advantages
- Large and growing ecosystem of plugins, documentation, community discussion
- Better performance than VimScript
- Lua is a versatile language and it is quite easy, just not as “human readable” as VimScript
- You have this holy grail
Disadvantages
- Time & effort to make the switch
- Time & effort browsing and installing for new development and plugin
- Potentially developing an obsession with plugins
- Time & effort developing plugins yourself
- You will never get these lost hours back
In all seriousness, I recommend checking out preconfigured “distros” like LunarVim or NvChad. Here’s my dotfiles.
It should be noted that as long as you’re on Neovim you can still keep your VimScript plugins and your VimScript config and gradually start using Lua plugins and Lua scripting. You don’t need to do a complete rewrite over night.
There’s no real downside to switching to Neovim. It’s basically a superset of Vim, only with better defaults and more capabilities that you can opt-in to if you’d like (Treesitter, native LSP client, Lua, etc.).
Switched a few years back when I decided to mostly rewrite my config from scratch. It’s definitely nice to use a normal programming language for your config, plus I’ve been doing a few things here and there that I never would have bothered with if I was still using vimscript. To top it off, I’m pretty sure you have to at least do some Lua work if you want to take advantage of the built in lsp support, which I make use of extensively.
I recently switched.
Expect no noticeable speed difference.
Two reasons I switched:
- Simplicity.  I only have one language to remember and use. 
- I hated VimScript. It seems like a config file syntax that should never grown into a full programming language. Lua is simple and pleasant to learn and use.
Yes you should.
It’s not hard to learn once you get over that first stage of not even knowing what a lua table is, and mentally accepts that arrays start at 1, not 0 :)