GNvim - Rich Neovim GUI without any web bloat
GNvim, neovim GUI aiming for rich code editing experience without any unnecessary web bloat.
GNvim has been quite stable for the past 6+ months and it has been my daily driver since last August, but ymmv. I try to add new features as I find time for it (any help is welcome!). You can usually find me on the neovim gitter.
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=./runtime cargo run $ # Install $ make $ sudo make install
- No electron (!), build on GTK.
- 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
- Own view for
- Own view for
More externalized features will follow as they are implemented for neovim.
- Stable rust to compile
- Latest nvim master (gnvim 0.1.0 works with nvim 0.3.4)
- 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
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.
TL;DR: Without installing:
GNVIM_RUNTIME_PATH=./runtime cargo run
GNvim requires some runtime files to be present and loaded by nvim to work
properly. By default, gnvim will look this files from
but this can be changed by
GNVIM_RUNTIME_PATH environment variable.
By default, gnvim will use
nvim to run neovim. If you want to change that,
you can use
--nvim flag (e.g.
For debugging purposes, there is
--print-nvim-cmd flag to tell gnvim to print
the executed nvim command.
gnvim --help for all the cli arguments.