NeoVim it is, then
When JetBrains decided to do something I consider - let us be generous and civil - ill guided earlier this year, I had to take a look at which editor I will use in the near future to write code. This should not be understood as me being against LLM based code assistants, I am sure one day they will actually become useful, but some of my clients have extremely strict requirements and the presence of a feature like this alone can be problematic.
As a long time vim user NeoVim was obviously one contender. Helix gained a lot popularity lately and was worth a look. I never expected VSCode to not follow up with LLM integrations, considering Microsofts investment in this area, and I still cannot stand Electron applications. If I would have gone down this route I would likely have setup code-server.
And more recently Eclipse Theia made it out of beta, but not to native Apple Silicon binaries. Also Electron.
I have been a bit of a vim critic for a long time, the plugin ecosystem is not the most stable anymore, and the newest favourite way to install language servers changes a bit too often for my liking.
Helix is a great editor with an awesome out of the box experience. But I really missed a file explorer. Retraining my muscle memory was easier than expected. If you are fine switching terminals or tmux panes every now and then to move files around, I would suggest taking a look if you are interested in a terminal based, modal editor.
I ended up with NeoVim and LazyVim as distribution. I never really tried a distribution before, so this was new to me. It fixed all the plugin mess. I didn't configure anything. All default, which means whenever I start vim it updates its plugins and that is it. Testing that everything works is not my problem anymore. And the defaults are sane.
I have been using this setup for a bit over two months and two new services. Python language servers still cannot match JetBrains IntelliSense, but they are getting better. Having to restart pyright when creating a new file for it to be indexed is annoying, but does not happen that often. Django support is still subpar.
Startup times are really not of any concern. Most of my days I ssh to the client or project specific LXC container and tmux attach
the already running workspace.
Overall I am pretty happy and will stick to NeoVim. Muscle memory is hard to beat. It works nicely for my workflow. I do not really care about how "nice" it looks, and if Apple ever figures out how to make the $3000 iPad Pro more than a glorified video player, trading my laptop for an iPad might be easier than ever.
My JetBrains subscription will run out in September. I was a customer way before they introduced the all in subscription. It has been some time. If I would ever go back I would likely move to Fleet. The editor is getting better, but is still buggy. At least it is actively being developed, other than Gateway and some super hard problems like more than one split are being addressed.
posted on July 7, 2024, 7:44 p.m. in software engineering
This entry was posted as a "note" and did not undergo the same editing and review as regular posts.