Need advice about which tool to choose?Ask the StackShare community!
Vim vs Visual Studio Code: What are the differences?
Vim: Highly configurable text editor built to enable efficient text editing. Vim is an advanced text editor that seeks to provide the power of the de-facto Unix editor 'Vi', with a more complete feature set. Vim is a highly configurable text editor built to enable efficient text editing. It is an improved version of the vi editor distributed with most UNIX systems. Vim is distributed free as charityware; Visual Studio Code: Build and debug modern web and cloud applications, by Microsoft. Build and debug modern web and cloud applications. Code is free and available on your favorite platform - Linux, Mac OSX, and Windows.
Vim and Visual Studio Code can be categorized as "Text Editor" tools.
"Comes by default in most unix systems (remote editing)", "Fast" and "Highly configurable" are the key factors why developers consider Vim; whereas "Powerful multilanguage IDE", "Fast" and "Front-end develop out of the box" are the primary reasons why Visual Studio Code is favored.
Visual Studio Code is an open source tool with 78.4K GitHub stars and 10.9K GitHub forks. Here's a link to Visual Studio Code's open source repository on GitHub.
PedidosYa, Yahoo!, and triGo GmbH are some of the popular companies that use Visual Studio Code, whereas Vim is used by Lyft, Starbucks, and PedidosYa. Visual Studio Code has a broader approval, being mentioned in 1104 company stacks & 2298 developers stacks; compared to Vim, which is listed in 844 company stacks and 860 developer stacks.
For a Visual Studio Code/Atom developer that works mostly with Node.js/TypeScript/Ruby/Go and wants to get rid of graphic-text-editors-IDE-like at once, which one is worthy of investing time to pick up?
I'm a total n00b on the subject, but I've read good things about Neovim's Lua support, and I wonder what would be the VIM response/approach for it?
Neovim can basically do everything Vim can with one major advantage - the number of contributors to the code base is just so much wider (Vim is ~100% maintained only by B. Mooleanaar). Whatever you learn for Neovim you can also apply to Vim and vice versa. And of course there is the never ending Vim vs Emacs controversy - but better not get into that war.
Actually, the biggest advantage with Neovim (as a VS user) is that you can embed REAL Neovim as the editor UI, rather than using a "Vim emulation", you're using actual NVIM, embedded in VS!
"asvetliakov.vscode-neovim" is the extension you are looking for:
- Install the 'vscode-neovim; extension (https://marketplace.visualstudio.com/items?itemName=asvetliakov.vscode-neovim)
- Install Neovim version 0.5+ nightly
- Start winning.
(You can install neovim-nightly separately for just vscode, I usually build and install it to /opt/nvim - it's enough enough to do - let me know if you need help).
Works wonderfully. It might not work out of the box if you have some 100K epic nvim initialization file, but the plugin documents a workaround for having an embedding/VS specific configuration.

I don't actually notice much of a difference between the two, as the end result looks identical. If you use Vim and are switch to Neovim it's an extremely easy 1-minute process. I switched from Vim to Neovim. I can't say I found much of a difference, but the key points where Neovim could be better than just vim is that first, there are much more people maintaining Neovim compared to vim, which means fewer bugs and a modern code base. It also has a smaller code base which might result in a small speed improvement. Another thing is that it's basically just a fork of vim, so what harm can it do? ;)

I recommend using vim 8+
it has native plugin support
if you need language supports you can install the package vim-nox
which will come with support for python, lua, ruby, etc

The hints on the codebase's contributors and the VSCode integration helped me make up my mind.
I really appreciate all comments, though.
Thanks a bunch!
It truly depends on whether you want to completely avoid GUI and stick to TUI and command lines. If you want to edit all of your codes within a terminal, then Vim or neovim would be the choice. Emacs can be run in a terminal, but the functionality is limited. Most people use Emacs using GUI and emacs-client not to use too much memory.
My general preference is to use an independent text editor, which is better if it is highly customizable and programmable. So, I have used Emacs for several years. For beginners, I guess Emacs requires significant time to learn to fully enjoy its wonderful functionalities. In that sense, using atom would be a recommendable option.
Regardless of all the situations, learning basic vim in the terminal will help you in any case. In summary, I recommend 1. vim as a default editor in the terminal 2. atom if you are a beginner, or 3. Emacs if you have a long-term plan to master a programmable editor
Other editors like sublime text, VS code, and so forth are also worth learning and using. But, no matter which editor you choose, stick to one or two until you become an advanced user. Being able to use most text editors at an intermediate level is waste of time.
I hope it helps.
Lightweight and versatile. Huge library of extensions that enable you to integrate a host of services to your development environment. VS Code's biggest strength is its library of extensions which enables it to directly compete with every single major IDE for almost all major programming languages.
Visual Studio Code became famous over the past 3+ years I believe. The clean UI, easy to use UX and the plethora of integrations made it a very easy decision for us. Our gripe with Sublime was probably only the UX side. VSCode has not failed us till now, and still is able to support our development env without any significant effort.
Goland being paid, as well as built only for Go seemed like a significant limitation to not consider it.
I decided to choose VSCode over Sublime text for my Systems Programming class in C. What I love about VSCode is its awesome ability to add extensions. Intellisense is a beautiful debugger, and Remote SSH allows me to login and make real-time changes in VSCode to files on my university server. This is an awesome alternative to going back and forth on pushing/pulling code and logging into servers in the terminal. Great choice for anyone interested in C programming!
Pros of Vim
- Comes by default in most unix systems (remote editing)344
- Fast326
- Highly configurable312
- Less mouse dependence295
- Lightweight245
- Speed144
- Plugins99
- Hardcore95
- It's for pros80
- Vertically split windows65
- Open-source28
- Modal editing25
- No remembering shortcuts, instead "talks" to the editor22
- It stood the Test of Time21
- Unicode16
- Dotfiles12
- Stick with terminal12
- VimPlugins12
- Everything is on the keyboard12
- Flexible Indenting11
- Programmable10
- Hands stay on the keyboard9
- Large number of Shortcuts9
- Efficient and powerful9
- A chainsaw for text editing8
- Everywhere8
- Unmatched productivity8
- Because its not Emacs7
- Developer speed7
- Super fast7
- Modal editing changes everything7
- Themes6
- You cannot exit6
- Makes you a true bearded developer6
- Great on large text files5
- Shortcuts5
- Plugin manager options. Vim-plug, Pathogen, etc5
- EasyMotion5
- Most and most powerful plugins of any editor5
- Intergrated into most editors5
- Habit5
- Shell escapes and shell imports :!<command> and !!cmd5
- Intuitive, once mastered4
- Perfect command line editor3
- Not MicroSoft1
Pros of Visual Studio Code
- Powerful multilanguage IDE329
- Fast294
- Front-end develop out of the box185
- Support TypeScript IntelliSense152
- Very basic but free137
- Git integration118
- Intellisense102
- Faster than Atom74
- Better ui, easy plugins, and nice git integration49
- Good Plugins41
- Great Refactoring Tools41
- Terminal39
- Superb markdown support36
- Open Source34
- Extensions29
- Awesome UI26
- Large & up-to-date extension community25
- Powerful and fast23
- Portable21
- Best code editor18
- Best editor17
- Easy to get started with16
- Good for begginers15
- Crossplatform15
- Open, cross-platform, fast, monthly updates14
- Built on Electron14
- Lots of extensions14
- Extensions for everything13
- All Languages Support13
- Extensible12
- Easy to use and learn11
- Git out of the box11
- "fast, stable & easy to use"11
- Useful for begginer11
- Ui design is great11
- Faster edit for slow computer11
- Totally customizable11
- Great community10
- Fast Startup9
- Works With Almost EveryThing You Need9
- Powerful Debugger9
- Great language support9
- SSH support9
- It has terminal and there are lots of shortcuts in it9
- Can compile and run .py files8
- Python extension is fast7
- Great document formater7
- Features rich7
- She is not Rachel6
- He is not Michael6
- Awesome multi cursor support6
- Language server client5
- VSCode.pro Course makes it easy to learn5
- SFTP Workspace5
- Extension Echosystem5
- Easy azure5
- Very proffesional5
- Virtualenv integration4
- Has better support and more extentions for debugging4
- Excellent as git difftool and mergetool4
- Supports lots of operating systems3
- More tools to integrate with vs3
- Better autocompletes than Atom3
- 'batteries included'3
- Has more than enough languages for any developer3
- Emmet preinstalled3
- Fast and ruby is built right in2
- CMake support with autocomplete2
- Light2
- Microsoft2
- Customizable2
- VS Code Server: Browser version of VS Code2
- Big extension marketplace1
Sign up to add or upvote prosMake informed product decisions
Cons of Vim
- Ugly UI8
- Hard to learn5
- It's not Emacs1
Cons of Visual Studio Code
- Slow startup44
- Resource hog at times27
- Poor refactoring20
- Poor UI Designer13
- Microsoft13
- Weak Ui design tools11
- Poor autocomplete10
- Poor in PHP7
- Huge cpu usage with few installed extension7
- Super Slow6
- Poor at Python5
- Microsoft sends telemetry data5
- Poor intellisense. poor java4
- Poor in Python3
- No color Intergrator3
- No Built in Browser Preview3
- Dilshad3
- Very basic for java development and buggy at times3
- No built in live Preview3
- It's MicroSoft2
- Bad Plugin Architecture2
- Electron2
- Terminal does not identify path vars sometimes1
- Powered by Electron1