gnvim

GUI for neovim, without any web bloat

Github星跟蹤圖

Build Status
Gitter

GNvim, Neovim GUI aiming for rich code editing experience without any
unnecessary web bloat.

GNvim has been my daily driver since August 2018. I try to add new features as
I find time for it, and any help is welcome!

For more screenshots, see the wiki.

TL;DR to get started on Ubuntu 18.04 after cloning this repo and assuming
you have rust tool chain installed:

$ sudo apt install libgtk-3-dev libwebkit2gtk-4.0-dev
$ # Run (unoptimized version) without installing
$ GNVIM_RUNTIME_PATH=/path/to/gnvim/runtime cargo run
$ # Install
$ make && sudo make install

macOS (without webkit2gtk)

Webkit2gtk isn't really available for macOS. GNvim is available without said
dependency, but such builds won't have the cursor tooltip feature.

To install all dependencies and build without webkit2gtk (gtk+3 required for
building, librsvg is a runtime dependency for showing LSP icons in completion):

$ brew install gtk+3 librsvg
$ make NOWEBKIT2GTK=1
$ # or with cargo
$ cargo build --no-default-features

Features

  • No electron (!), build on GTK.
  • Ligatures
  • Custom cursor tooltip feature to display markdown documents.
    Useful for implementing features like hover information or signature help
    (see gnvim-lsp).
  • A lot of the nvim external features implemented
    • Popupmenu
      • Own view for preview (:h completeopt).
    • Tabline
    • Cmdline
    • Wildmenu

More externalized features will follow as they are implemented for neovim.

Requirements

GNvim requires

  • Stable rust to compile
  • Latest nvim release or master
  • Gtk version 3.18 or higher

On some systems, Gtk packages doesn't include development files. On Ubuntu
18.04, you'll need the following ones:

$ sudo apt install libgtk-3-dev libwebkit2gtk-4.0-dev

For other systems, see requirements listed by gtk-rs project here.
Note that you'll need the libwebkit2gtk-4.0-dev package too.

There are some benchmarks for internal data structures, but to run those you'll
need nightly rust. To run those benchmarks, use cargo bench --features=unstable
command.

Install

You're required to have rust tool chain available. Once you have that, clone
this repo and run make build followed by sudo make install.

Running

TL;DR: Without installing:

GNVIM_RUNTIME_PATH=/path/to/gnvim/runtime cargo run

GNvim requires some runtime files to be present and loaded by Neovim to work
properly. By default, GNvim will look for these files in /usr/local/share/gnvim/runtime,
but this can be changed by specifying the GNVIM_RUNTIME_PATH environment variable.

GNvim will use nvim to run Neovim by default. If you want to change that,
you can use --nvim flag (e.g. gnvim --nvim=/path/to/nvim).

For debugging purposes, there is --print-nvim-cmd flag to tell GNvim to print
the executed nvim command.

See gnvim --help for all the cli arguments.

主要指標

概覽
名稱與所有者vhakulinen/gnvim
主編程語言Rust
編程語言Rust (語言數: 5)
平台
許可證MIT License
所有者活动
創建於2018-07-27 20:16:01
推送於2025-04-21 18:02:00
最后一次提交2025-04-21 21:00:42
發布數11
最新版本名稱v0.3.1 (發布於 )
第一版名稱0.0.0 (發布於 )
用户参与
星數1.9k
關注者數21
派生數70
提交數617
已啟用問題?
問題數163
打開的問題數8
拉請求數36
打開的拉請求數0
關閉的拉請求數24
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?