Ask HN: Why do you like Visual Studio Code?
People really like VS Code. I am wonder, what is your reasons, why do you love it? Let's help other developers to understand the main advantages of this editor over JetBrains IDEs, Vim, Emacs, and Sublime Text.
Maybe it is one of the following items, or something else:
1. Some fancy hotkeys. Give examples.
2. Favorite extensions. Give examples.
3. Gitpod, or codespaces integration.
4. It is free for use.
5. It is fast for you.
69 comments
[ 5.4 ms ] story [ 147 ms ] threade.g. I use code to view .net, node, web projects, browsing Andoid code and other languages. I could use VS but it takes ages to start up and I find the search better in Code. Mostly I'm reading rather than writing code though.
Also +1 I used the plugin for creating azure functions recently and it worked 1st time and well even for someone not used to .net or azure.
Rider and Pycharm work great for me but I can’t get Webstorm to work properly with my workplaces large Angular product, whereas VSCode handles it without issue.
Do you have an elaboration here? This in no way matches with my experience, and I'm not sure I understand how this could be the case.
However, I miss a lot all the refactoring functionalities that PyCharm offers. For instance, moving a class from one module to another module is trivial in PyCharm (all imports from all other files are automagically updated), but it's a nightmare in VSCode (you need basically to go file by file and update the imports).
Hasn't gotten in my way. It's fast. The quality of the devtools are not perfect but useable.
I still use PHPStorm though, because it has the same full functionality (eg. code outline and navigation) on the remote as the local client.
Having said that, remote development in VSCode is perfect. I tolerate JetBrains Gateway for remote dev, but I'll be waiting for it to mature before renewing my JB license next year.
However, some VSCode plugins are great. I might have VScode in remote mode running just so I can use the excellent Docker plugin.
My use-case : I remote from my low RAM bad-container-support M1 to my Beelink mini PC with Ryzen 5600U that has more ram and runs linux (and so has better container support). Tailscale is used on both devices.
. _amazing_ integration with Julia. The only reason why I used Jupyter notebooks was for the concept of cells. But VS Code does that better AND the code is valid Julia code (as opposed to when using a Jupyter notebook, where the thing generated is not valid Julia code). Same goes for python.
. I LOVE the "Remote SSH" extension. With zero effort, other than installing the extension on my local, I can run VS Code backend on a remote machine. This allows me to, again with zero effort, be able to work on a machine that might not be great (like my laptop) but point the backend to some big machine and do some serious data crunching with a frontend on my laptop.
. I really like the CTRL-SHIFT-P box (it's called the "command palette"). It's the ability to _search_ IDE commands/features from a search box. This is in contast to having to memorize a hotkey (like vim) or clicking around various dropdowns (like Microsoft-inspired stuff).
. Like it's not vim-fast, but the UI is still quite fast.
. You CAN customize, but on the other hand all defaults are quite good.
I've been a huge vim fan for a long as I can remember, but VS code has replaced it for all my coding. The only situation where I still use vim is if I need to open multi-Gb data/log files.
EDIT: As other people mention PyCharm - are you nuts? PyCharm is VERY sluggish. I hate it.
[0] https://github.com/VSCodium/vscodium
I load up my editor once per day...if it's not still open from yesterday. You can CTRL+W to close a tab, but there's no reason to kill the whole app. I perpetually have a terminal, editor, and browser open. As long as CTRL+N or CTRL+T are instant, and it's instantly responsive after ALT+TABbing into the app, startup times are negligible/immaterial.
I guess that sometimes I'm in VSCode, while other projects might be in Notepad++, Visual Studio, or various vendor-specific IDEs, but a project will last weeks to months.
What's your workflow if not tabs and workspaces? Why would you ever close the whole application?
Favorite extensions is a meaningless thing to ask for, it is entirely dependent on what you are using VSCode to make. But there are good extensions for TS/JS/React workflows.
It was fun toying around with emacs for 3 hours per day to install new shit and make it more useable back in uni but I actually have stuff to get done these days
1. Fuzzy command completion like Emacs helm-M-x
2. Remote shell integration that is better than Emacs TRAMP.
3. Works more reliably than Emacs.
4. LSP support.
5. Works on Mac, Windows, Linux.
6. Can cajole coworkers into using it and thus have deeply integrated tooling in our workflow that applies to everyone.
Things I miss: 1. Org mode (particularly org-capture)
2. eval-region
3. helm-sloop
My current project is mostly contained to not very many sub projects, so it hasn’t been an issue.
It’s the default target these days so when you go to get set up using Flutter, the heaps game engine, Angular, PlatformIO, etc. they all have VSCode extensions.
If I am doing something that I don’t need or want an extension for I will use Sublime Text.
The other thing is that Visual Studio Code generally just works and gets me to writing code without issues. I came to it after trying to give Emacs a try after multiple times of doing so. I could sort of wrangle Emacs to do what I needed it to do, but I was having to write code for Emacs and search forums and poor documentation on how to do so, and even then, it was buggy. Switching to Visual Studio Code took just a few minutes of installing a couple of extensions, and then I was off writing code.
It is a little bit slow and sluggish at times, but it isn't an issue at the moment.
The .devcontainer integration is also pretty slick. Pull a repository, open Visual Studio Code, and it will open up in a Docker container with your environment all configured and ready to go.
This.
Compared to Java based IDEs specifically: whenever a Java person tells me any Java app is fast, I try it, and I can feel the latency. It's been this way for 20 years now.
Comparex to Jetbrains:. It is 1 tool that can deal with all text processing, not a different product for each language. It can deal with a PHP+ Java+C hybrid, including some javascript and SQL.
Vs Jetbrains and Sublime: Free. This also means no license management and no credit card unsafety (I am not in the USA) or payment processor madness.
Linux has no real notepad++ competitor. Kate comes close, but vscode comes even closer.
To me it isn't a vim competitor, but a different way to use vim.
The alternative is the "regular" vim extension, which is more limited in functionality (but it even emulates common extension, like commentary) but potentially easier to set up.
But in the end you can get a "real" vim together with all the tooling (debugger, autocomplete, syntax, etc.) vscode extensions provide, which I think is very neat.