/Nvy

Nvy - A Neovim client in C++

Primary LanguageC++MIT LicenseMIT

Nvy

Nvy is a minimal Neovim client for Windows written in C++. It uses DirectWrite to shape and render the grid cells and text.
Since Nvy is just a front-end for Neovim, installing Neovim is required to use Nvy, preferably the latest nightly version from here.

Showcase image

Configuration

Nvy sets the global vim variable g:nvy = 1 in case you want to specialize your init.vim while using Nvy.

Fonts can be changed by setting the guifont in init.vim, for example: set guifont=Fira\ Code:h24.
Note: you have to specify the font size, e.g. set guifont=Fira\ Code won't work.
A fallback font can be specified by appending it, e.g. set guifont=Fira\ Code:h24:Consolas to set Consolas as the fallback font.

Nvy can be started with the following flags:

  • --maximize to start in maximized
  • --fullscreen to start in fullscreen
  • --position=<x>,<y> to start with a given position, e.g. --position=500,200
  • --geometry=<cols>x<rows> to start with a given number of rows and columns, e.g. --geometry=80x25
  • --disable-ligatures to disable font ligatures
  • --disable-fullscreen to disable toggling fullscreen with Alt+Enter
  • --linespace-factor=<float> to scale the line spacing by a floating point factor, e.g. --linespace-factor=1.2

Extra Features

  • You can use Alt+Enter to toggle fullscreen
  • You can use Ctrl+Mousewheel to zoom
  • You can drag files onto Nvy to open them (:e)
  • Dragging files while holding Ctrl opens them in a new window (:new)

Releases

Releases can be found here

Build

Requirements

Apart from the Windows SDK, the only dependency Nvy uses is the excellent MPack library which is compiled alongside the client itself.

Build example with Ninja

git clone https://github.com/RMichelsen/Nvy.git
cd Nvy
mkdir build
cd build
cmake .. -GNinja
ninja