VSCode != Neovim
Okay, first things first: of course, this post is as much a joke as anything else. VSCode is not Neovim and neither should it be! Both editors have different strengths and I’m a firm believer in picking your development tools based on your specific needs. For some, that might be VSCode or a JetBrains IDE, for others that might be Neovim with Tmux.
Even though I belong to the latter category, I do fire up VSCode once in a while, specifically in scenarios where it’s just better than Neovim. One example is when I need to edit and run Jupyter Notebook files, which is not possible (or very impractical) in a terminal based environment. Another is that, while I have debuggers set up in Neovim, debugging is one case where using a mouse-driven interface is often quicker than keyboard shortcuts.
Moreover, even if there’s probably no way to beat Neovim as a “hyperextensible” editor (you can literally program it to do pretty much anything), VSCode has a ton of features and a very active extension ecosystem too, so there’s probably more configuration possible than some might give it credit for!
All of this got me interested lately in a little experiment: I wanted to see just how far I could get in trying to get VSCode to behave like my Neovim installation.
So I gave it a try and besides being good fun, I actually learned a lot about VSCode customization. So in the end, I hope this blog inspires you to make the most out of your development environment — whatever it is you prefer!
First thing I noticed when comparing VSCode with Neovim is how much clutter there is on the screen with the out-of-the-box config:
Compare that to the calm of Neovim:
So first of all, we’re going to need Zen mode (Ctrl-Alt-Z) for both the editor and Gitlens. Here are my settings for that: