I thought switching from vim to neovim would be like switching from a nano+ to a VSCode CLI, but it's far from that. There are so many plugins and it's not as easy as declaring which plugins I want, having one dictionary/mapping/attribute set with keybindings, another with global preferences, and done.
Then there's something about language servers. The list on https://github.com/rockerBOO/awesome-neovim is daunting. I thought LSP support was built into nvim
. Why are there so many LSP plugins? And what the hell is treesitter and why do I need it?
I copied some dude's config and suddenly Ctrl+P
for completion didn't work like in VIM.
There's just so much unexplained jargon and abbreviations, that it feels like I have to read neovim code before even using it (ain't nobody got time for that). Is neovim actually the right tool to use to have an easy CLI IDE? Is there an easier command-line alternative that just lets me go "oh, this language isn't supported, let me open the package manager and install the $language-plugin
", with "Goto Definition", debugging with breakpoints, code formatting, refactoring (rename variable/method/class, extract function, etc.) ? Maybe neovim just isn't the right tool for those without years of time.
Edit: Thanks for the suggestions everybody. Finally went with Lunarvim and it's been a joy!
Try Helix, it's another modal (terminal) editor, but it comes with what you'd expect from a usable text editor out of the box to work on software projects. No need to fight with a million plugins all designed independently.
Good choice, however the number of supported languages is limited to things with language server or treesitter support. Meaning languages without this, like asciidoc, is not supported and might never be
both of these things are pretty standard tbh, if a language doesn't even have treesitter grammar, its ecosystem is probably laking
Nim, which I use as my main language, doesn't have usable Treesitter support. Not for a lack of trying, but because its grammar is very complex and has some features that Treesitter doesn't play well with (indentation sensitivity, style insensitivity).
Also, I do a lot of work in my own language which obviously doesn't have any ecosystem at all.