• Stars
    star
    1,843
  • Rank 25,183 (Top 0.5 %)
  • Language
    C++
  • License
    ISC License
  • Created over 10 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Neovim client library and GUI, in Qt5.

Build Status Build status Build Status codecov Status Build Status Downloads

Neovim Qt

Neovim Qt is a lightweight cross-platform Neovim GUI written in C++ with Qt.

NeovimQt Screenshot

Installing Neovim Qt

Neovim Qt is available on all platforms supported by Qt.

Instructions for common platforms are listed below.

Windows

Neovim Qt is bundled with all releases of Neovim on Windows.

See the Neovim release page:

Neovim is available as a Chocolatey Package.

Stable Neovim + Neovim Qt:

> choco install neovim

Pre-Release Neovim + Stable Neovim Qt:

> choco install neovim --pre

Nightly versions of Neovim Qt require manual download + installation.

Pre-built Windows binaries are provided for all recent commits:
AppVeyor Commit Build Wiki Instructions

MacOS

Homebrew

Neovim Qt is available in the Homebrew core package repository.

To install the latest release:

$ brew install neovim-qt

To install the latest development version:

$ brew install --HEAD neovim-qt

Linux

Neovim Qt is packaged for many distributions, use your favorite package manager.

If your distribution is not listed here, please create an Issue with instructions.

Arch Linux

Neovim Qt is available from the Arch Community Repository.

$ sudo pacman -S neovim-qt

Gentoo

Neovim Qt is available from this Portage Ebuild.

Alternatively, you can add the entire overlay:

$ eselect repository add jgehrig git https://github.com/jgehrig/gentoo.git
$ emerge --sync
$ emerge -av neovim-qt

OpenSUSE

Neovim Qt is available from this Community Package.

Debian, Ubuntu

Neovim Qt is in both the Debian and Ubuntu package repositories, and can be installed with APT. This means that it should also available on any OS that uses these repositories, such as Linux Mint.

$ apt install neovim-qt

Homebrew

Homebrew supports Linux (sometimes called "Linuxbrew"); follow the MacOS Homebrew installation instructions.

Configuration

Neovim Qt can be configured through the ginit.vim file.

The default locations are:

  • Windows: %LOCALAPPDATA%\nvim\ginit.vim
  • MacOS: ~/.config/nvim/ginit.vim
  • Linux: ~/.config/nvim/ginit.vim

Recommended ginit.vim:

" Enable Mouse
set mouse=a

" Set Editor Font
if exists(':GuiFont')
    " Use GuiFont! to ignore font errors
    GuiFont {font_name}:h{size}
endif

" Disable GUI Tabline
if exists(':GuiTabline')
    GuiTabline 0
endif

" Disable GUI Popupmenu
if exists(':GuiPopupmenu')
    GuiPopupmenu 0
endif

" Enable GUI ScrollBar
if exists(':GuiScrollBar')
    GuiScrollBar 1
endif

" Right Click Context Menu (Copy-Cut-Paste)
nnoremap <silent><RightMouse> :call GuiShowContextMenu()<CR>
inoremap <silent><RightMouse> <Esc>:call GuiShowContextMenu()<CR>
xnoremap <silent><RightMouse> :call GuiShowContextMenu()<CR>gv
snoremap <silent><RightMouse> <C-G>:call GuiShowContextMenu()<CR>gv

For more options, try :help nvim_gui_shim and scroll down to Commands.

More detailed information can be found on the Configuration Wiki Page.

Frequently Asked Questions

Why are the :Gui commands missing?

You need the Neovim Qt runtime to use commands like :GuiFont.

You can manually specify the path with NVIM_QT_RUNTIME_PATH.

Alternatively, you can install the Neovim Qt plugin separately: Plugin 'equalsraf/neovim-gui-shim

On recent releases, you can check if the runtime is loaded with nvim-qt --version:

$ nvim-qt --version
NVIM-QT v0.2.16.1
Build type: Release
Compilation:-march=native -O2 -pipe -Wall -Wextra -Wno-unused-parameter -Wunused-variable -std=c++11
Qt Version: 5.15.2
Environment:
  nvim: nvim
    args: --cmd let &rtp.=',/usr/share/nvim-qt/runtime' --cmd set termguicolors
      runtime: /usr/share/nvim-qt/runtime
...

Notice that runtime: is non-empty and points to a folder with nvim_gui_shim.vim.

Why does :Gui not work in init.vim?

The :Gui... commands are not loaded when init.vim runs.

These options must be configured from ginit.vim. The file should be placed in the same directory as init.vim.

Alternatively, Neovim Qt responds to some vim options. You can :set guifont=... directly in init.vim.

How do I disable the GUI Tabs?

Try :GuiTabline 0. This option can be added to ginit.vim.

To prevent startup flicker, see Wiki - Configuration Options

Why does the popup menu look different?

Try :GuiPopupmenu 0. This option can be added to ginit.vim.

The menu looks different because it is a widget rendered via Qt. Many users expect the nvim TUI (Terminal UI) menu instead.

How do I change the font?

Use the :GuiFont command or the 'guifont' setting. For example, :GuiFont Fira Code:h12, or :set guifont=Hack:h12.

Why does :GuiFont throw an error?

You may see these errors:

  • {Font Name} is not a fixed pitch Font
  • Warning: Font {Font Name} reports bad fixed pitch metrics

You can override this warning with :GuiFont! {Font Name}.

These warnings display for fonts containing variable-width characters.

They are safe to ignore, but you might notice font spacing and clipping issues.

Why is Neovim unable to start?

The nvim binary must be in your $PATH. You can manually provide a path to Neovim:

$ nvim-qt --nvim {path_to_nvim}

In recent versions, nvim-qt --version reports the nvim binary path:

$ nvim-qt --version
...
Environment:
  nvim: nvim
...

Building From Source

Detailed build instructions can be found at the Wiki.

Simplified Build Commands:

$ mkdir build
$ cd build
$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ cmake --build .
$ NVIM_QT_RUNTIME_PATH=../src/gui/runtime bin/nvim-qt

NOTE: NVIM_QT_RUNTIME must be set for commands such as :GuiFont to work.

More Repositories

1

win32yank

Windows clipboard tool
Rust
431
star
2

vim-qt

An experimental Qt gui for Vim.
C
128
star
3

neovim-gui-shim

Neovim GUI shim, a helper plugin for GUI commands and functions
Vim Script
48
star
4

dropbox-paper

Minimal script to wrap my usage of dropbox+git to write papers. Go RESEARCH!
Python
11
star
5

homebrew-neovim-qt

Ruby
5
star
6

git-talk

Lets talk git/github and other things
HTML
5
star
7

winbundle

A nifty tool to find DLL dependencies for your windows binaries
Rust
4
star
8

whatsmyip

Rust crate to find your ip address
Rust
3
star
9

skyhook

SSH puddle jumping scripts
Shell
3
star
10

kabal

A notification server for X11 desktops, built with Qt and QML
C++
3
star
11

ffcli

Firefox in your shell
Rust
3
star
12

blogpit

blogpit is a blog storage that uses git to store blog articles
C
2
star
13

pwx

passwordsafe v3 compatible password manager
Rust
2
star
14

magick-backup-script

A magic bash script I use to backup my laptop
Shell
2
star
15

mdpreview

A live Markdown previewer
C++
2
star
16

python-icecc

A python module with some useful snippets to aid in using the icecream distributed compiler.
Python
2
star
17

ubiplay

Web based music player
Python
2
star
18

on-drm-change

Small utility to forward udev drm events
C
1
star
19

flask-blogpit

Blogpit for Flask
Python
1
star
20

pandocpaper

Pandoc recipe to write papers
CSS
1
star
21

openbsd-ksh

Building OpenBSD's ksh in linux
C
1
star
22

pdcurses

Personal fork of pdcurses 3.4 for cross compile and modern C fixes
C
1
star
23

webpageworker

WebPage crawler powered by QtWebKit
C++
1
star
24

bran

CLI tools to control chrome
Rust
1
star
25

webslides2pdf

A tool to help you turn websites into Pdf files
C++
1
star
26

qrterm

Generate QR codes in your terminal
Rust
1
star
27

slides-build-systems

Slightly humorous slide deck about build systems
HTML
1
star