2017-12-31 00:03:14 +00:00
Back in October Kade Killary wrote, [A Killer GUI For Neovim: VimR][kade-vimr].
2017-12-30 23:47:27 +00:00
[VimR] is an excellent Neovim GUI on macOS but ever since reading the article
I've been meaning the write about the Neovim GUI I use on Linux: [NeovimGtk].
2017-12-31 21:44:39 +00:00
NeovimGtk doesn't have quite as many bells and whistles as VimR (yet) but it
does have a few. Like VimR, it's a native application (no Electron, etc.). It's
2017-12-30 23:47:27 +00:00
developed in [Rust], and as the name implies uses the GTK toolkit to feel right
2017-12-31 21:44:39 +00:00
at home on a [GNOME] desktop. NeovimGtk is not limited to Linux though. The
2018-01-01 04:45:53 +00:00
project explicitly supports Windows as well, and should build anywhere where
Rust and GTK are available. I was able to build it successfully on OpenBSD.
2017-12-30 23:47:27 +00:00
I am a huge fan of the [PragmataPro] font, and one of NeovimGtk's killer
features for me is support for font [ligatures]. This means it renders text
with wonderful typographic beauty.
< figure >
< img src = "/images/2017/neovim-gtk-ligatures.png" alt = "NeovimGtk displaying Rust code in PragmataPro with ligatures" / >
< figcaption > NeovimGtk displaying Rust code in PragmataPro with ligatures.< / figcaption >
< / figure >
Ligature support was what initially drew me to NeovimGtk but since I've started
2017-12-31 09:50:43 +00:00
using it, its creator, [daa84], and a handful of contributors have added
2017-12-30 23:47:27 +00:00
several more features.
There is a file/project picker to open recent files and projects (directories).
Checking the check box on a directory makes that item always available in the
list for quick access.
< figure >
< img src = "/images/2017/neovim-gtk-project-switcher.png" alt = "NeovimGtk displaying the file/project picker" / >
< figcaption > The file/project picker.< / figcaption >
< / figure >
One of the more recent additions was a plugin manager. It lists installed vim
plugins and allows news ones to be added. Behind the scenes it uses the
excellent [vim-plug].
< figure >
< img src = "/images/2017/neovim-gtk-plugin-manager.png" alt = "NeovimGtk plugin manager" / >
< figcaption > Plugin manager.< / figcaption >
< / figure >
Another recent addition enabled support for wide glyphs. PragmataPro has a few
of these in the non-Mono variant of the font. The extra width is used to make
the glyph more legible. This makes [devicons] and [Neomake] warnings render nicely.
< figure >
< img src = "/images/2017/neovim-gtk-wide-glyphs.png" alt = "NeovimGtk displaying a double wide warning symbol next to a line with a compiler warning" width = "451" / >
< figcaption > A double wide warning symbol next to a line with a compiler warning.< / figcaption >
< / figure >
Native controls are used for the tab bar and pop-up menus.
< figure >
< img src = "/images/2017/neovim-gtk-gui-menu.png" alt = "NeovimGtk displaying a native pop-up menu" / >
< figcaption > Native pop-up menu.< / figcaption >
< / figure >
< figure >
< img src = "/images/2017/neovim-gtk-native-tabs.png" alt = "NeovimGtk displaying open tabs using a native tab control" / >
< figcaption > Native tabs.< / figcaption >
< / figure >
2017-12-31 21:44:39 +00:00
So if you're a Neovim user on Linux I can certainly recommend you check out
NeovimGtk. Installation currently requires building from source. However for
Arch Linux users I have created an [AUR package] for easy installation.
**Update 1 Jan 2018:** It was pointed out on Reddit that NeovimGtk runs on
Windows too, so I changed the title of this post from, "A Killer Linux GUI For
Neovim: NeovimGtk", to "A Cross Platform GUI For Neovim: NeovimGtk"
[Comments on Reddit][reddit]
2017-12-30 23:47:27 +00:00
2017-12-31 00:03:14 +00:00
[kade-vimr]: https://medium.com/@kadek/a-killer-gui-for-neovim-vimr-ce68e4fa1a3b
2017-12-30 23:47:27 +00:00
[NeovimGtk]: https://github.com/daa84/neovim-gtk
[Rust]: https://www.rust-lang.org/
[PragmataPro]: https://www.fsd.it/shop/fonts/pragmatapro/
[ligatures]: https://en.wikipedia.org/wiki/Typographic_ligature
[daa84]: https://github.com/daa84
[VimR]: http://vimr.org/
[vim-plug]: https://github.com/junegunn/vim-plug
[AUR package]: https://aur.archlinux.org/packages/neovim-gtk-git
[devicons]: https://github.com/ryanoasis/vim-devicons
[Neomake]: https://github.com/neomake/neomake
2017-12-31 21:44:39 +00:00
[reddit]: https://www.reddit.com/r/neovim/comments/7n56ju/a_killer_linux_gui_for_neovim_neovimgtk/
[GNOME]: https://www.gnome.org/