HomePhabricator
Visual Studio Code + Neovim
A delicious blend of old and new.

I've started using Vim in 2014. I've read a few books, wrote a few articles and gave a few talks on Vim. I really like editing text with Vim, but I was never happy with it's file management, extensions, things like that.

I've noticed that Visual Studio Code (VSCode) is used by slightly more than 50% of developers that participated in 2019 Stack Overflow survey. (I didn't find editors section in 2020 survey.)

I've learned about Neovim in Modern Vim book. I've started using Neovim in 2018 after I've started reading the book.

I've noticed more and more people using VSCode so I gave it a try earlier this year. The only record I have is a commit in my dotfiles from a few days ago, but I know I've been using it for a few months. I liked VSCode in general. It has all the features I need and a lot of extensions. But, after using Vim, editing text using anything else feels like walking backwards. (Editing text using Vim feels like running. Forwards.)

vscode-neovim VSCode extension was all I needed to connect the two. A real Vim implementation (not an emulator!) inside VSCode.

You need three things. VSCode, Neovim and vscode-neovim.

Installing VSCode is simple, download the installer from the site.

Installing Neovim should also be simple. I've installed it on a Mac using Homebrew and all I needed to do was:

brew install --HEAD neovim

--HEAD part is important. It will install version 0.5. If you don't use --HEAD you will get version 0.4. vscode-neovim needs version 0.5.

vscode-neovim is installed from VSCode Extensions. Search for Neo Vim by Alexey Svetliakov.

Links

Originally published as Visual Studio Code + Neovim at Željko Filipin's blog.

Written by zeljkofilipin on Oct 7 2020, 2:48 PM.
Senior Software Engineer in Test (Contractor)

Event Timeline

WARNING: the version of Visual Studio Code that the majority of people have is not Free as in Freedom software.

Do not download and install the official version of Visual Studio Code from Microsoft's website. Only the official source code is released under the MIT license, but the official binary is just freeware (gratis, but without permission to study what's happening, improve that software, and share your improvements for whatever purpose). Double read the Microsoft's EULA that is very clear about that. That's why actually it is not a good idea to download and execute and promote Visual Studio Code... except if you compile that software on yourself, but hey, nobody does it :)

TL;DR; let's be very careful when promoting Visual Studio Code in Wikimedia community.

Interesting reading:

https://en.wikipedia.org/wiki/Visual_Studio_Code

Open source binaries of VS Code are actually released under the name VSCodium:
https://vscodium.com/

You can use them instead if you want.

In J211#3208, @stjn wrote:

Open source binaries of VS Code are actually released under the name VSCodium:
https://vscodium.com/

You can use them instead if you want.

This ↑

Thank you.

@valerio.bozzolan Visual Studio Code source code is released under the MIT license and is definitely free and open source software. The binary offered by Microsoft does use a different license since it comes with trademarked material (Microsoft, the logo among others) and a few adapters here and there to match their proprietary software portofolio such as their debugger. Hence the more restrictive license.

It is covered at:

So yes thanks for pointing this out, though it is still more free software then proprietary :]

@zeljkofilipin very cool, how does it work with vscode features like autocomplete and hover hints on code, and things like that? Or search and replace?

I've been using the vscodevim which works pretty well too, albeit not a full vim with your own configuration, so kind of limited.

@Jhernandez as far as I can tell, all normal vscode features work.

There's no problem with VSCode, given that you also have VSCodium which is almost the same without the trademark or branding. Many opensource projects can be rebranded in a proprietary way (except those using the GPL which does not allow restrictions on some parts, but this is common with LGPL, and there's nothing wrong for someone that makes some content online and maintain it online, to also promote their own services).

I've not seen any malicious component in VSCode and the privacy statement is clear if you activate some proprietary extensions that will connect you to MS's servers or with your Windows Live account (that Microsoft MUST secure, so that no one else will inspect your activity with your account related to your use of VSCode). These plugins are not active by default, you need to connect explicitly.

Being "open" does not prohibit commercial use, otherwise it is NOT open by definition (except in the FSF view regarding the GPL, but not the LGPL with its exclusion clause). As well it's natural to protect the name/brand of the project/tool to avoid appropriation by third parties. As well it's reasonable to add patent protection as long as the licencing conditions are open, beacuse it will protect from illegitimate claims by profiting third parties (by passing with patents the normal copyright protection).

Note also that the "public domain" offers no protection at all: preferably use CC0 which at least cites and dates the initial authors. The public domain is reappropriated frequently and it's hard to avoid if one cannot prove the initial work made by the real author and his ability to open his work to anyone. If you publish something in CC0, annoucne it in reliable archived pages of wellknown sites, name your project, date and sign (possibly with a specific domain name whose ownership is at least archived by domain name registrars, so that you can prove your ownership at the time and place of publication and your initial conditions of licencing).

Many works done in the "public domain" have been appropriated and the initial authors have been condamned to pay fees or forced to resign themselves to stop completely their own project, because they could not reasonably prove their initial ownership at the relevant time (before the abusing third party making a false claim at a later date that they could easily prove).