Moving to neovim
After a few false attempts over the last few years, I finally spend last weekend on trying to get a decent setup for neovim. While i'm not unfamilair with vim itself, neovim is a whole other beast to tame. I noticed that it's like that picture of how to draw an owl:
I've decided to go with nvchad this time. Not so much that there is a reasoning behind it, except for the process of elimination. I've tried Astrovim and lazyvim i think in the past, and with both I did not get far, so we try a new fresh system instead.
I've written down a list of features that neovim must do in order for me to use it as a daily IDE. But starting with nvchad and figuring out what to do next is already a big step. Lua seems the way to go, and nvchad uses lazy as its package manager (?) and most of the plugins I found have configuration that I can copy/paste until I figure out what it all means.
After a few failed attemps to get copilot running correctly, I finally managed to get it running in my suggestion box (i think that is lsp, or cmp, i don't know) with a few tweaks here and there. A lot of functionality I need is either already present, or is simply a plugin with some minor config in order to get it running. (I notice that when asking a question like "can I do .....", in neovim the answer is almost always "yes").
A few things are still bothering me, but will probably sort itself out soon enough:
- I have some issues with window splitting. I can't seem to manage the windows in a way it makes sense. I can move around to other windows, but moving content (buffer?) to another window, or zooming into a window etc I cannot seem to find. It's there, i'm sure of it, but haven't found it yet
- I don't know how to work with "projects". In "regular" IDE's you have projects with store project-based information including bookmarks, configuration, window settings etc.. you do have sessions, but it seems a bit of an afterthought. I want to be able to select "project foo", and have a complete screen with last used files opened, with my bookmarks ready, etc..
- debugging is still not working. I still need to get into DAP.
- Things I use a lot are for instance scratch files. Files that are not that important, but important enough to save. For instance tmp-curl commands, or json output and such.. I don't want to clutter that into my project directly, so scratch files seem to work nicely.
- Local history. This is a lifesaver in jetbrains.. I really like it to have it in neovim.
But overall, i'm pretty content with the current setup. We're still not ready to do daily work, but i seem to manage to work in small projects here and there. We'll see how it goes in a few weeks.
|March 24, 2023