Spoiler alert: I'm old. Old enough that uni assignments would be mostly done by ssh'ing into the mainframe computer and work there. At a time where the editor ecosystem was quite frankly... not there. Sublime didn't exist at the time, and nano felt underwhelming compared to vim, especially with our professors handing out vim tips as we'd go through stuff.
So I learnt vim, and modal editing. And never left that knowledge behind. I feel it's quite useful if you take the time to learn it, the same way your capacities grow as you learn shortcuts for your favorite editor. Vim just placed it at the forefront. Given that most editors support vi bindings, it's not knowledge that goes to waste if you leave vim behind.
Which is what I've done for a while now! First for Emacs, which has the best vi emulation layer, and would argue edges out vim in places! It was fun while it lasted, but as I moved towards a frontend-focused role, VSCode autocomplete was too appealing a deal to think about not using it. The bindings were adequate. Limited and not super nicely integrated, yes, but adequate. The completion magic really sold it despite the modal layer shortcomings.
But let's be honest for a minute. Microsoft sucks. They went to great length to change their image, but the fact remains that the company is collaborating with rather unsavoury actors, and still struggles to treat their employees decently, especially when it comes to their marginalised workers. And I'm not ok with that. It's not really my job to fix Microsoft issues, and it's probably not something that can be fixed under our current economic system. But the fact remains that I am uncomfortable using their products, and that's the thing I can do something about, especially when it's not something that would hamper my visibility nor something that my workplace uses extensively like github. VSCode fits the bill, and so we said our goodbyes.
I tried going back to Emacs, but their LSP integration is still slow unless you're willing to go on the bleeding edge, and even then, things look uncertain when it comes to protocol extensions. A lot of the really magical stuff happens in those, and these niceties are hard to forget about. I thought that vim did not handle these either, as YCM has no appetite in doing so. But I was wrong! coc.nvim is a fully featured LSP implementation that strives to offer the same capabilities as VSCode (Not just the LSP) all in the comfort of a native modal editor. Javascript and Typescript are part of the default bundle, but other LSPs are readily available too, and work quite nicely.
I gained a lot in the transition. I don't need to leave the terminal anymore, it feels a lot snappier, which I find especially important on something I use on daily. I got back to a modal model that just works, without any quirks, and a very minimal interface to leave space for what matters: the code.
I'll probably continue fluttering around over the years to be honest, unless I actually manage to write my own thing, that works the way I want it to!
PS: I use Neovim, and you probably should too. Vim is trying to diverge more and more from Neovim, but goes in a direction that looks a lot less appealing than Neovim's roadmap.
Top comments (8)
I'd recommend the
vimtutor
command to get acquainted with the editor itself, how to navigate with it, before messing around with plugins! It's worth it in the long run to really know what the different keys can do for you. Although, that's probably my bias kicking in for having used it before a breadth of tutorials existed!I think this video series does a good job of introducing navigation concepts but I also heard good things about this small game introducing all the navigation/edition tools. All in all, it really depends on how you learn!
I'm definitely planning on getting more info out there on plugins, but here's my own plugin list in the meantime! It's not super big, but that's because I don't source the coc.nvim stuff properly just yet (And even then, it's just about having prettier/rust-analyser/emmet)! There is a useful list of coc plugins available on the coc wiki too!
Well now every big company is accused of that. Now it is the case of who is less bad; similar to presidential race.
Can you please point out some of such news articles related to Microsoft?
The great thing about picking a text editor is that you don't need to rely on a big company though. 🤷♀️
I agree
Have you considered using VSCodium?
This is very interesting. I personally never gave that much thought about Telemetry as I choose to disable it.
Though vscodium sounds much better as there is no endpoint to send Telemetry data.
After spent a lot of time adjusting neovim to my needs, is hard to get back to vscode, vim flow and binds get in your head.
That’s great that you’re consciously choosing your developer tools 😊 more people should think like you