Command line: VIM, Programming (back-end)

Vim for .NET – Set up

In order to start the journey with VIM for .NET you need to set up the environment and get all the plugins. There is no all-in-one standalone package thus you need to prepare it by yourself. I suggest the following configuration:

1. Install VIM

Install the newest package from (full installation minus “visual studio add-in”):
It is not so trivial as going to VIM homepage and clicking download. contains a default compilation of vim for Windows, but compilations differ from each other significantly. VIM for Windows is distributed as GVIM which is a classic VIM for terminal + VIM wrapped up in dedicated window frame and mouse support. Both can be precompiled with different set of features (over 100), like Lua language support, Python intergration, Perl, Ruby etc. Some of these are very important (especially Python). copy contains GVIM compiled with Python/Python3, but classic VIM not. That’s why I recommend to download the brew from here (full installation minus “visual studio add-in”):


2. Install Python 2.7.x


Most of vim extensions are written using Python language (including our most wanted Omnisharp). In order to use it, you need to install Python. Still the most common version is not 3.x but 2.7.x. It is vital to choose the right architecture (x86 vs x64) – it must be same as VIM.
After installing it, you should be able to run

":py print 'hello world'"

in VIM.

3. Install pathogen-vim

mkdir autoload
mkdir bundle
curl -LSso .\autoload\pathogen.vim

execute pathogen#infect()
filetype plugin indent on

(you can run ":e $MYVIMRC" in VIM)

Vim is so powerful because of its extensibility. In order to use the full power of it you need a good plugin loader. Pathogen-vim automatically scans /vimfiles and loads plugins. This is a prerequisite for most of other plugins

4. Install Omnisharp-vim

cd %SYSTEMDRIVE%%HOMEPATH%\vimfiles\bundle
git clone
cd omnisharp-vim
git submodule update --init --recursive
cd server
cd ..\..

If (msbuild is not found, add "C:\Windows\Microsoft.NET\Framework64\v4.0.30319" to your $PATH)

Omnisharp is a tools that analyze the solution and provides metadata for our project. It’s like external Resharper engine (run as console application listenning on http). This is used to add syntax checking of our project, autocomplete, code actions and many more. In order to connect it with VIM you need a wrapper and here we have "omnisharp-vim".

5. Install vim-dispatch

cd %SYSTEMDRIVE%%HOMEPATH%\vimfiles\bundle
git clone git://

It’s a plugin that automatically starts OmniSharp server when you open *.cs file. Without it you would have to run :OmniSharpStartServer manually.

6. Install syntastic

cd %SYSTEMDRIVE%%HOMEPATH%\vimfiles\bundle
git clone

It is something like Resharper icons next to the code (describing errors, warnings, hints, suggestions).

7. Install CtrlP

cd %SYSTEMDRIVE%%HOMEPATH%\vimfiles\bundle
git clone

Together with omnisharp it provides support to contextual actions, go-to-everything, buffer explorer (go to previous file) etc

8. Install NERDTree

cd %SYSTEMDRIVE%%HOMEPATH%\vimfiles\bundle
git clone

“Solution” tree for VIM. Very useful as there is no default alternative (you would have to go to selected file with CtrlP or command line).

9. Install yeoman

npm install -g yo
yo install csharp-cli-app generator

It creates files/projects from template (with online template browser). There are several .NET templates as well. It’s a must for fron-end developers, but VS devs already have built in “add new” wizard (although yeoman has better support from community).

10. Install vim-snipmate

cd %SYSTEMDRIVE%%HOMEPATH%\vimfiles\bundle
git clone
git clone
git clone

It helps to create useful code snippets – similar to "prop", "for", "class", "wl" etc.

11. Configure _vimrc

All of the plugins above can be adjusted manually using _vimrc file. You can do this on your own or use some sample file, like mine.

That’s it.

There’s a plenty of steps, but I’d bet it’s less time consuming than installation of Visual Studio.


One thought on “Vim for .NET – Set up

  1. Thank you so much for putting this all together in one place. It’s not easy for inexperienced vim users like myself to get it all working. Thanks!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s