Home

Awesome

VV

VV is a Neovim client for macOS. A pure, fast, minimalistic Vim experience with good macOS integration. Optimized for speed and nice font rendering.

VV screenshot

VV is built on Electron. There are no barriers to porting it to Windows or Linux, or making plugins with Javascript, HTML, and CSS.

Installation

Install via Homebrew

VV is available via Homebrew Cask:

$ brew install vv

NOTE: older versions of brew require a special command to install vv

$ brew cask install vv

It will also install Neovim (if it is not installed) and command line launcher vv.

Download

Or you can download the most recent release from the Releases page.

You need Neovim to run VV. You can install it via Homebrew: $ brew install neovim. Or you can find Neovim installation instructions here: https://github.com/neovim/neovim/wiki/Installing-Neovim. Neovim version 0.4.0 and higher is required.

Build manually

You can also build it manually. You will need Node.js and Yarn installed.

$ git clone git@github.com:vv-vim/vv.git
$ cd vv
$ yarn
$ yarn build:electron

This will generate a VV.app binary in the dist directory. Copy VV.app to your /Applications folder and add the CLI launcher vv to your /usr/local/bin.

Command Line Launcher

You can use the vv command to run VV in a Terminal. Install it via the VV → Command Line Launcher... menu item. VV will add the command to your /usr/local/bin folder. If you prefer another place, you can link the command manually:

ln -s -f /Applications/VV.app/Contents/Resources/bin/vv [dir from $PATH]/vv

Usage: vv [options] [file ...]

Options are passed to nvim. You can check available options in nvim help: nvim --help.

Settings

You can setup VV-specific options via the :VVset command. It works the same as the vim built-in command :set. For example :VVset nofullscreen is the same as :VVset fullscreen=0. You can use :help set for syntax reference.

You can use these settings in your init.vim or change them any time. You can check if VV is loaded by checking the g:vv variable:

if exists('g:vv')
  VVset nobold
  VVset noitalic
  VVset windowheight=100%
  VVset windowwidth=60%
  VVset windowleft=0
  VVset windowtop=0
endif

VV also sets set termguicolors on startup.

Development

First, you need start a Webpack watch process in a separate terminal:

yarn dev

Then you can run the app:

yarn start:electron

You can run tests with yarn test and ESLint with yarn lint commands.

It is written on TypeScript, but it uses Babel to build. It does not check types during the build. If you want do do type check manually you can run it with yarn typecheck.

Server

You can run Neovim remotely in browser via VV Server. More info: packages/server/README.md

Browser Renderer

Browser Renderer is a separate package used in Electron app and Server.

Name

The VV name comes from the bash shortcut vv that I use to start Vim.

License

VV is released under the MIT License.