Skip to content
A vimrc that Just Works™ for modern JavaScript development
Vim script Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.

This project is no longer under active development. Feel free to use it and open issues and pull requests but new features won't be coming for the foreseeable future.


A vimrc that Just Works™ for modern JavaScript development.


The easy way

First, install neovim with Python3 support. If you're on OS X macOS and have homebrew installed, you can issue this command: brew install python3 neovim/neovim/neovim; pip3 install neovim.

While most of the features available in this project will work in regular vim, neovim's asynchronous plugin support means the editor is much faster even when dealing with complex tasks like FlowType autocomplete and linting.

The easiest way to download and use this configuration is to issue the following command.

curl -o- | bash

This command will download the installation script and run it through BASH. This script will detect if you have neovim installed, install vim-plug, clone this repo into ~/.vimrc.js, backup your existing vim or neovim configuration, symlink ~/.vimrc.js/vimrc to the appropriate path, and install plugins with vim-plug.

I understand that curl-ing and executing random shell scripts can be scary. You are encouraged to view the source of this file (and tell me how it can be better).

Once installed, you can add your own plugins to ~/.vimrc.js/vimrc.plugs.local and your own settings to ~/.vimrc.js/vimrc.local.

The DIY way

You are by no means required to use the automated installer. All used plugins are listed in vimrc.plugs and all settings for these plugins are listed in vimrc. Feel free to copy and paste pieces of these files into your own vimrc.

Once installed, you can add your own plugins to ~/.vimrc.js/vimrc.plugs.local and your own settings to ~/.vimrc.js/vimrc.local.


If you've only modified the *.local files, you can update to the latest version at any time by running the following:

cd ~/.vimrc.js
git pull origin master
command $(which nvim || which vim) +PlugUpdate +qall



What's in the box?

JavaScript, es6+, FlowType, and JSX syntax highlighting and indentation

Unfortunately there isn't a single plugin out there that provides proper syntax highlighting for modern JavaScript development. This project uses a combination of three plugins to achieve syntax highlighting bliss.

  • pangloss/vim-javascript
  • mxw/vim-jsx
  • gavocanov/vim-js-indent

Syntax highlighting

Intelligent and fast autocomplete

A combination of deoplete and tern means that you'll get smart completion suggestions as you type.


Eslint and FlowType errors on save

Errors reported by eslint and flow are displayed inside vim so you can jump straight to the problem.

Fuzzy file searching

Fuzzy finding is provided by fzf. Open the fuzzy searcher using <C-t> (like Atom)


File tree viewing

NERDTree provides a project viewer. Toggle it using <C-\> (also similar to Atom).


Git diff markers in the gutter


You can’t perform that action at this time.