loading...
Cover image for [Rant] Why I'm going back from VScode to Vim😡

[Rant] Why I'm going back from VScode to Vim😡

samuelfaure profile image Samuel FAURE Updated on ・3 min read

There's a problem with our approach to software.

And VScode is a better and better example of it every day.

I look at code all day for a living. I determined the most important qualities of a good code editor for me were the following:

  • Lightweight / Fast
  • Stability
  • Good keybindings
  • Aesthetically pleasing

I've been using Visual Code Studio over Vim for most of my workflow, for the last four years.

Why did I choose VSCode ?

Vim can't be beaten on its lightweightness, stability, and keybindings. But, even after years of using it regularly, and weeks of customizing it, I still find it quite ugly and visually raw.

VScode, on the other hand, is gorgeous. And (used to) score pretty well on the other categories.

it has pretty good keybindings, but it's nothing like Vim. Some extensions exist to activate some Vim keybindings, but none of them work very well IMHO.

VScode also used to be quite stable and lightweight. So I was okay sacrificing Vim's amazing user experience for this code editor, because I look at code at least 30 hours a week, so it was important for me that my eyes felt good about it.

Alt Text

Why do I go back to Vim ?

During my 4 years of use, VScode (which, as I understood, was a lightweight alternative to Visual Studio) have fallen into the most common software trap: bloating.

Here are some dealbreakers that appeared during the last 4 years of VScode use. And yes, those issues appear even with extensions deactivated.

Feature creep over bug fixing

I have a very annoying bug on VScode, that makes it almost impossible to correctly use the backtick ` character. This character is wildly used in markdown and ES6, so it's a huge pain in the ass to not be able to use it.

Somewhere in 2018, this bug was introduced, an issue was created, but it was never fixed. On the other hand, new features kept arriving, almost all of which I will never use. You know what I would really love to use ? Backticks.

Bloating

With all those new features, the software itself became larger. It takes longer to launch. The menus themselves seem to be twice bigger than they were before. I get lost more easily now.

Instability

The first couple years of use, VScode never crashed for me. Then over the last couple years, it started crashing pretty regularly. Now I have a freeze & crash almost every day.

I just wanted a lightweight code editor, the same than 4 years before. How is it that the more time pass, the less good the software will be ?

Alt Text

Back to Vim, then.

I feel like I lost quite some time configuring my VScode to perfection and developing an efficient workflow on it, only for the software itself to become more and more degraded with time. This is a bad user experience to live.

On the other hand, Vim never let me down. It might be quite ugly, even after all the customizing I did, but this time I'll try to be more faithful to it.

New software just ends up disappointing you.

Why does this seem like such a common issue ?

I can't count how many softwares I initially enjoyed but gradually started to hate after they became a bloated mess. The very first I remember was Itunes, which was released almost 20 years ago.

You can bet a new lightweight alternative to VScode will appear in a few years, generating hype, getting a following, before starting to become bloated itself.

Maybe I'm a sucker for minimalism, but I don't think this issue affects only me. How is it that this happens again and again ? Did you have such a similar experience ? I'd be happy to hear your opinions and comments on the question.

EDIT: I've just been made aware that the backtick issue in VSCode might be due to a bad font I'm using. My apologies to the team !

Posted on by:

samuelfaure profile

Samuel FAURE

@samuelfaure

I love : Web development - Writing - Generative art // I hate: Corporate culture // I value: Radical honesty

Discussion

pic
Editor guide
 

Yes I can feel you. There can be some bugs that's really annoying but a little digging can solve the issue. Recently I had a bug on vscode which cause all of my extensions including git source control shut down or crash saying that extension host terminated unexpectedly and I had to restart the extension host manually. On little digging I found out that the extension named Live server was causing the issue and one I uninstalled it everything is working fine now so I agree with the bloating. Currently I don't face any other issue like slow launching or any other issue that is really annoying to me.

 

I suppose you could fix the bug yourself or stick with an older version and miss the bloat. But I get your point.
Also am breaking my rule of not being involved in ide wars. Must be because I'm on holiday!
What's your suggestion for avoiding bloat as I imagine lots of apps have always risked this as computers incrementally get more powerful.
Maybe a parallel lite version which focuses on the core features? VSCodium... But "official"!

 

Thanks for your comment !

I sadly don't have a solution for bloat, apart from using software designed by like-minded people (I use Arch, btw). It seems to me that I am doomed for many software to just suffer through the bloat until a lite-version (same company or a competitor) inevitably appears.

Also I am quite annoyed by what people allow themselves to do in the name of computers becoming faster. It's such a terrible ecological waste, and so annoying for people who can't afford the latest tech !

 

Haha! Not to the same extent but this happened to me the other day. My friend convinced me to use VScode while he teaches me Python and it's fantastic when learning programming. But then I tried writing a shell script and I got so frustrated when it kept autocompleting when I didn't want it to. I could of just changed a setting or two but I'm used to vim. I like vim so I went back.

 

Hi
I decided to use PhpStorm from jetbrain. It includes webstorm as a front-end dev environment. It is not free but it is professional and it integrates a very good type hint. I run Debian stretch, I build apps using nestJs / express / angular / MongoDb , PHP symfony, Rust and python.

 

Wondering why not something like Sublime...it's still pretty light.

 

I experimented with Atom and VScode, havent tried Sublime yet but I'm going to give it a try!

 

Maybe you can shed some more light on the subject. I'm the old school, was doing HTML 20 years ago with TextPad and hated Dreamweaver, then Sublime and laughed at VisualStudio and IDEs in general and how slow they are. Last few years I switched to VSCode and liked it. Now I do buy as fast laptops as I can find, so currently on Dell XPS 15, and everything is fast on it. VScode feels like TextPad 20 years ago. But VSCode pulled me in with some IDE features. Autocomplete i.e. Even moved from pure JS to Typescript just because of that. Lately I'm trying WebStorm and its refactoring is great. I'm loving it so far. Since moving from Win to Linux years ago, I didn't have any stability issues either.
But I do start hating the mouse lately. Probably will try trackball too bit now I'm experimenting with Vim. Just for a few days. Also tile window manager (i3). I'm loving where it goes, and great keyboard navigation but... (finally the question)... How do you live without refactoring, autocomplete, and other efficiency features of IDEs? Those did noticably increase my efficiency.

 

I never found a refactoring program that was satisying me well enough. And I dont enjoy autocomplete much, especially in vscode where it takes me shorter to type the variable than for good suggestions to actually appear. Maybe I just don't know how to use it right, but I prefer typing everything.

Some features I do use like linters and such.

There are some amazing plugins on vim for all those things. I use "ale" for linting/formatting.

 

Maybe this is something for you: v2.onivim.io/ :)

 

I couldn't wait actually and bought a preorder... This looks exactly like what I've been looking for ! Thanks for this amazing discovery !

 

I'm happy I could help :)

 

Looks great ! I'll totally try it when it's released

 

I feel the exact opposite way about vscode, for me it just keeps getting better and better.
Which is hard for me to say, because I used to be in the "Microsoft is Evil" camp.

When I first tried vscode is was too slow and buggy for me, so I went back to SublimeText and emacs, but a year later when I tried it again it had gotten way better.

Your bug in vscode is actually not a bug but a consequence of you using a keyboard locale with dead keys, change keyboard local to one without dead keys and your problem goes away. (I wrote a small comment on the issue with a link to a great explanation of what exactly dead keys are).

 

Thanks for sharing.

I however disagree wholeheartedly about this not being a bug :

  • Clearly, the backticks merging onto characters and the cursor getting a weird spacing on the left are not intended effects.

  • litterally any other application I ever used works fine with that keyboard layout

  • the US INTL keyboard with dead keys layout is common, so common it comes preinstalled with windows and most linux distributions. I need the dead keys since I am french and use accents every other word.

  • I cant just decide using another layout because one app is screwing up. It takes a while to get accustomed to a new keyboard, so I would not do it before I find one that suits better my workflow. If you have a suggestion for a good coding + english + french layout, I'll take it.

 

I'm danish and also use dead keys, and I have the same behavior in all of my applications.

The merging of back ticks into the following character is the desired effect, as it makes it possible to write characters like these: éáèà as you write your self.

The wierd spacing however could be a bug, but it's not something I can reproduce in vscode on the mac.

Your current setup should work just fine for coding+english+french, you just need to press back-tick + space when you want a single back-tick.

Indeed the backtick key ` can be used to write letters such as à, è, ect.

However this is obviously not what I consider a bug. Consider instead that on VSCode:

1/ The backtick merge with just any character. This is not supposed to happen. If I type backticks and "g" on a normal app, I get this : `g

2/ It is impossible to avoid, it will always merge with the following chars, whereas right now I can double press the backtick key to get actual backticks : ``a => This is not merging with a, because I don't want it to. My browser is therefore working correctly.

3/ It displays sentences wrongly, when backticks are surrounding the text, such as this : hello world. As you can read in my issue, the file and its backticks will be, however, correctly displayed in Vim or any other editor.

4/ The weird spacing thing.

I must confess I am very confused as to how you could think the problem would be that I don't know how to use an US INTL keyboard. I mean, I've been using it for five years as a professional developer, my boss would probably fire me if I didn't know how to type with a keyboard ;-)

I guess from the way you described how you use dead keys, it sounded like you didn't know the "correct" way to get get the result you want or maybe that your computer was configured in a weird way that is causing you trouble.

I would never "double press backtick" as that would leave the last backtick in "modifier-mode" and depending on what character you type next it would merge or not.

E.g. your example of "back-tick, back-tick, a" should result in à and not`a as you describe (provided that your dead key setup is functioning properly).

The proper/best way to type a back-tick on a keyboard with dead keys is "back-tick + space" - and that should work in any app.

Looking closer at your screen capture, it looks like your back-ticks are transformed into a completely different set of characters when you type two back-ticks in a row.

Does back-tick + space work for you?

Errata : the issue seems to not have originated from VSCode but from a bad font on my side. Strange that it only acted like this with VSCode, but that was definitely not their fault !

Great that you figured out what the issue was!

 

The most important part of an IDE is code completion and warnings/errors if you make a compile time mistake. If you can get it out of vim, you don't need an actual IDE.

On the other hand if you don't have those and you produce code that will blow up other people's IDE you will be a truly toxic developer. I had some fights with people who used vim and wrote code that broke all smart IDE features made to help you knowing what object you are dealing with in every line of your code.

... also maybe try WebStorm? I would not work for a place that can't buy me a 60$ license.

 

Try Emacs + EVIL mode. There are even some preconfigured emacs setups like Spacemacs and Doom Emacs that you can try.

It's lightweight, supports Vim bindings, extensions etc.