I’m actually using nvim for rust development and it’s really fucking great but I’ve been using vi for like 25 years so for me the only issue was configuration, the editor is just natural for me. If you also have to learn the editor I don’t know what your experience will be.
As for configuring it for development I started with spacevim and managed with half the functionality normal IDE provides for quite some time. The experience was still good. About 6 months ago I set up nvim and now I have everything I need. I think setting up nvim for rust was as complicated as setting up spacevim. Spacevim provides way more out of the box but changing configuration is not easy at all.
I don’t worry about vim/nvim “schism”. The support is still great.
I would say just go with nvim, spend a week to set it up and don’t get too obsessive if small things don’t work. Enjoy the amazing responsiveness and great editor and you will figure out everything eventually. And if you have any questions just ask. I can share my config.
As for configuring it for development I started with spacevim and managed with half the functionality normal IDE provides for quite some time. The experience was still good. About 6 months ago I set up nvim and now I have everything I need. I think setting up nvim for rust was as complicated as setting up spacevim. Spacevim provides way more out of the box but changing configuration is not easy at all.
Would it be fair to assume that the switch from SpaceVim to Neovim was due to how difficult changing its configuration was to better suit your needs? Would you say this is SpaceVim’s fault? Or rather Vimscript is to be blamed?
I don’t worry about vim/nvim “schism”. The support is still great.
I also meant it in the sense that perhaps later down the line something else will come out to ‘replace’/‘improve’ upon Neovim. Until -in turn- that one is one day replaced as well and so on and so forth… Like, we’ve already gone from Vi -> Vim -> Neovim. While, on the other hand, Emacs still is Emacs. Thankfully, the modal editing part of Vim should persevere regardless; even if the name of the editor changes every so often.
I would say just go with nvim, spend a week to set it up and don’t get too obsessive if small things don’t work. Enjoy the amazing responsiveness and great editor and you will figure out everything eventually. And if you have any questions just ask. I can share my config.
Thank you for the encouragement! At this point, I intend to start with Vi(m) to get used to the core experience.
The problem with SpaceVim is that it offers a lot of toggles that are easy to switch but there are no examples for more ‘custom’ config and I struggled to figure it out. There’s a lot of examples and guides for nvim so it was easier. I don’t know, maybe it was just me but with SpaceVim I also didn’t really see what’s possible. With nvim I just found long lists of useful plugins that you can add one by one.
As for the future I don’t really worry that there will be next thing after neovim. I didn’t write any custom scripts for it, all I have is just plugins with mostly default settings. It would take me a day to switch to another tool witch is not a big issue.
I think starting with Vim is a good idea. You can easily add plugins one by one when you will see the need for them.
The problem with SpaceVim is that it offers a lot of toggles that are easy to switch but there are no examples for more ‘custom’ config and I struggled to figure it out. There’s a lot of examples and guides for nvim so it was easier. I don’t know, maybe it was just me but with SpaceVim I also didn’t really see what’s possible. With nvim I just found long lists of useful plugins that you can add one by one.
Makes a lot of sense. Documentation is indeed very important. Thank you so much for sharing your insights and experiences!
Void Linux with musl. I wanted to try setting up a distro with Musl, but many things I use daily simply don’t work with it, and the hassle of troubleshooting everything was a bit too much. I went back to Fedora Workstation, and I’ll likely stay on it for my workstation (though I’ll switch to Fedora Kinoite when Fedora 40 releases). I also use Fedora Server for my personal server, since it’s very familiar to me, and there’s not a huge point in switching to CentOS anymore with the recent changes, so I’ll probably just stick to it.
I’m talking mostly about musl, but Void with glibc still requires more work than a “just works” distro. As such, I didn’t see a point in trying Void with glibc, because the biggest benefit I saw to switching was for musl. It’s great for some, but not for me, just as I wouldn’t use Gentoo. There were a lot of things that didn’t run, I don’t have a full list. I know for a fact that Steam (or any Steam games) wouldn’t run, I’m fairly confident that the OnlyOffice suite wouldn’t work, I believe that EasyEffects wouldn’t run which was a big problem, since I use that for system wide equalization, and for my microphone filters. I probably could have figured out how to set everything up with bare PipeWire, but it’s basically the same story for everything: it just requires way more work. My VPN (Mullvad) isn’t compiled for musl, nor was the Nextcloud client, and many things I use every day. Those are just the things I remember having issues with off the top of my head, and it may not have only been musl that was the problem, but it’s very likely it was.
I tried several editors but always come back to emacs. When I used LaTeX because of AucTeX, then I discovered org-mode and now I do my writing with org-mode and ConTeXt.
Disclaimer: Never really used Emacs, but mediocre VI(M) user for nearly 25 years.
I am fully capable of using VIM for developing bigger programs, but I gave up on the wish of setting up VIM as an IDE. Still, IMHO VIM is worth knowing for quick edits, writing and remote work.
Seriously, if you want an IDE for Python and C#, VS Code with the Microsoft plugins is and will be miles ahead of the VIM experience. The Rust plugin for VS Code is IMHO subpar, the last time I tried it. I don’t know what is the favorite IDE of Rust developers.
I wouldn’t want to stop you trying out editors and having a nice journey, but in the last years, VS Code ‘won’ and is used by nearly every developer for a reason: It has not a perfect setup and a lot of annoying issues, but out of the box the experience is good enough™ and is has the biggest user base by far, so show stoppers will be fixed quite fast.
So, my advice would be: Learn vi, because it is a handy tool for quick edits with good defaults (looking at EMACS) and chose a popular editor or IDE for your development needs. The time trying to force VIM/EMACS into a descent IDE will never come back and the theory sounds better than it will be in reality.
Seriously, if you want an IDE for Python and C#, VS Code with the Microsoft plugins is and will be miles ahead of the VIM experience.
Someone else already pointed how VS Code has become the most popular IDE (at least according to statistics found on stackoverflow). While categorically I’d like to dismiss VS Code for not adhering to F(L)OSS, VSCodium -however- actually does fit the bill. And while formerly I’ve had bad experiences on it related to how the plugin ecosystem is configured by default compared to VS Code, I’ve since learned how it works on VSCodium. So I shall set it up in case Emacs and/or (Neo)Vim somehow seem to be less fit for the job and/or I can’t be bothered at that moment to configure Emacs/(Neo)Vim to do my bidding.
Learn vi
Will do.
The time trying to force VIM/EMACS into a descent IDE will never come back and the theory sounds better than it will be in reality.
I understand the concerns. And I agree that I should be realistic in how I approach this. Nonetheless, I’m faithful for it to be a very productive endeavor. Thank you for chiming in!
My impression about VS Code being popular is also from workplaces at several companies, VS Code was literally on every machine and VS Code project config files are nowadays checked in with project into version control. (In the past I would not have been happy about config files in version control, but I just accepted it by now.)
One more question: How to setup VIM/NEOVIM or EMACS as a descent C# IDE? AFAIK the language servers support navigation and auto completion, what about refactoring, code generation, support for build systems, hot reloading for code while debugging etc.?
My impression about VS Code being popular is also from workplaces at several companies, VS Code was literally on every machine and VS Code project config files are nowadays checked in with project into version control. (In the past I would not have been happy about config files in version control, but I just accepted it by now.)
That’s actually kinda concerning 😅. I hope I can remain free to use whichever IDE suits me best. But thanks for pointing that out as it’s a very realistic scenario.
How to setup VIM/NEOVIM or EMACS as a descent C# IDE?
Hehe, the crux. Honestly, I’m not very optimistic that it can do everything one might be used to do on something like Jetbrains’ Rider. Nonetheless, I’ll try to get it as close as I can and see from there if I’m willing to deal with it. I’m not entirely opposed to rely on other IDEs from time to time for specific functionality I’d be missing otherwise.
Do you have any experience with neovim? I’m certainly not a Python programmer but I’m doing simple things for fun and so far neovim served me very well. If I eventually go deeper in Python I would be interested to know the limitations of neovim beforehand.
For Python, AFAIK Microsoft have their own implementation of a language server, so I don’t know how it compares to the Open Source options. My VIM config for Python runs black/isort on save and that’s good enough for me.
IMHO the distance is far greater when you use a language like Java/C#, which has really descent support from IDEs.
If neovim serves your needs, enjoy using it and don’t listen to random people in the internet. ;-)
Thanks for the information. I’m always happy to hear from others because that’s how I make progress. Also with my workflow in constant evolution it’s good to know neovim’s limitations so I can be prepared. Being curious by nature I will try other apps with no doubts anyway. I’ve tried vi, neovim, emacs, but only heard of VS so who knows…
Great post, I especially enjoyed reading the comments on the different distros you’ve tried. I totally agree with the statement that (almost) everything can be done with Linux.
I am using Linux Mint because it was the first distro I’ve found that would get my weird WiFi on my old Laptop to work and so I ended up using it on my main machine as well. But I’ve recently looked around for something new. Not that I’m not happy with Mint, just out of curiosity. Been eying KDE Plasma for a while but not sure if I want to give up the convenience of knowing Mint quite well. And I had to switch distro cause Mint isn’t supporting KDE natively anymore. Or maybe I should just play around with some new themes for a fresh look :).
If it’s a case of hardware compatibility I would reccomend either sticking with the distribution that works or just hardwire your ethernet connection. KDE Plasma is a DE as far as I know but KDE Neon looks really good if that’s what you meant.
Arch. Rolling release is too much maintenance and AUR can be a pain. I do like the minimalist approach though.
For those of a similar opinion and aren’t familiar with it, check out Void. Also a minimalist rolling release, but aims for more stable packages so less updating. Decent package selection in their repos as well.
I've been using Debian since 1.3. Haven't really ever needed anything else.
I did "experiment" a bit when the decision to go with systemd was taken, but in the end, most distros went with it and it really isn't that big deal for me.
So it's just Debian. I need a computer that works.
I’ve got Ubuntu on my server, mint (xfce) on an old iMac, and I really want to install Asahi on my m1 Mac mini, but my wife also uses that machine and I don’t think she’d like using asahi.
I love xfce, I’ve tried some WM like AwesomeWM and I see the appeal for sure, it just takes a while to get used to, like VIM, which I want to mess with as well. Asahi Linux looks super good, but I honestly don’t dislike macOS that much.
It’s funny, I was really excited for Ubuntu when it first released, and actually quite enjoyed it. On the other hand, RPM distros seemed like an absolute mess, at that time. Now it’s the exact opposite. At least in regards to Fedora, it’s a very well thought out and maintained distro if you want things to just work, and Ubuntu makes me uncomfortable.
Anything arch, basically. Maybe I'm just a too lower tier power user, but I have always returned to Mint. Rock solid daily driver working out of the box. I don't really want to have to tinker with the os, I admit. It should just work.
Fully agree. I once wanted to try it. I took a look at the documentation for partitioning and realized that I needed 2 full days for a working installation and constant access to another PC to be able to read the documentation… No thanks, I don’t care about the hate, Debian/Ubuntu is up and running in 30 mins and gets out of the way…
My personal PC and work PC are windows. I also just accidently removed a lot of my game files, so I figure it’s about time to start over. I’m going for kubuntu this time. I figure it’s going to be easier to get set up and running quickly without much fuss.
That said, I also run endeavor os on a little netbook tablet I have, so I’m dipping a toe there as well.
NixOS… for now. I was on Fedora and was looking for something new. Thought I’d try these new „immutable” distros. Then realised I didn’t know enough about normal ones yet, so I switched to Arch instead. Plus, Nix’ docs are horrendous imo
I tried NixOS too, and their docs are horrible for new users. I found myself looking for anything but the docs to get started. I decided to stay with my EndeavorOS install.
I attempted to try Garuda Linux (cinnamon) on a mini PC (Ryzen 5800H based APU), but graphic artefacting was a constant issue as soon as the install started.
After several tries I had to abandon ship and wait till a new release to maybe try again, if I remember. Not exactly “Nope, this one’s not for me” as I had yet to properly try it.
Otherwise, I tried Crunchbangplusplus and just gave up for being a bit too minimalist or not yet ready for prime time as I kept geting issues after issues and did not have the patience to wrangle the whole OS for everything from getting network working to audio and screen issues on my system.
Anyways, it is always fun to try new systems/apps/protocols and see where thing are headed towards.
linux
Active
This magazine is from a federated server and may be incomplete. Browse more on the original instance.