Neovim for Beginners — GUI

Graphical user interfaces for Neovim.

5 min readJul 16, 2022


Neovim for Beginners — GUI

In this article, let’s explore modern GUIs for Neovim.

This article is part of the Neovim for Beginners series.

The Neovim configuration files are available in this repository.

Getting Started

Until now we only use the Neovim terminal user interface (TUI). Neovim is a project that seeks to aggressively refactor Vim, and one of the objectives is to maximize extensibility.

Neovim supports a plugin UI architecture to reduce its code base and delegate GUI implementation to external clients. The client(s) control the Neovim nvim process via a msgpack-rpc API, allowing them to

  • Execute Vim commands
  • Evaluate Vimscript expressions
  • Manipulate buffers, windows, and tabs
  • Receive/handle editor events

We will review several interesting Neovim GUI clients implemented in different programming languages.


Neovide is a simple graphical user interface for Neovim developed in Rust.

It provides all standard full features of Neovim. Beyond that, there are some visual niceties.

  • Supports ligatures and full HarfBuzz-backed font shaping.
  • Animated cursor
  • Smooth scrolling
  • Animated windows
  • Blurred floating windows
  • Emoji support
  • WSL support
  • Remote TCP support.

To use our configuration with Neovide, we create the shell script with the following code snippet.


We also configure the GUI font (:h ‘guifont’) in the after/plugin/defaults.lua file.

local opt = vim.opt-- GUI…




Software engineer, Data Science and ML practitioner.