Coder Social home page Coder Social logo

goneovim's Introduction

Goneovim

test Go Report Card GitHub Releases Join the chat at https://gitter.im/goneovim/community

Goneovim is a Neovim GUI written in Go, using a Qt binding for Go. This repository forked from the original Gonvim for the purpose of maintenance and enhancement.

Why Neovim GUI

Traditionally, Neovim (and even Vim) has been optimized for working with Terminal, and some Terminal-based workflows cannot be achieved with a GUI. Therefore, for some people, a GUI would be an unnecessary additional stuff. On the other hand, in my opinion, there are some attractive features of GUI as follows.

  • More meta keys can be used
    • Since Neovim performs all of its operations with the keyboard, having more meta keys available is a simple advantage.
  • Terminal is also available in Neovim GUI
    • Neovim has an embedded terminal emulator that can be run in :terminal, so you can run basic terminal workflows using :terminal with bash or zsh in Neovim GUI. It is also possible to use remote control tools such as nvr to avoid nvim in nvim in Neovim GUI.
  • Experience the rich drawing expressions of GUI
    • For example, it is possible to scroll based on pixels, to set different font families and point sizes for each window.

If you are interested in these GUI attractions, try goneovim.

Features

All of the features are optional. You can use it like a plain nvim or as a nvim with a rich UI.

  • Fast (faster than neovim-qt)
  • Cross-platform
  • Modern Text Editor Features
    • Markdown Preview
    • Minimap
    • Smooth pixel scroll (Support for both touchpad and Vim scroll command reactions.)
    • Workspace feature which manages multiple nvim
    • External File Explorer
    • Scrollbar
    • Support Ligature
    • Built-in Indent guide
    • Support High DPI scaling
  • Features as neovim GUI
    • Externalizable tabline, popupmenu, wildmenu, cmdline, messsages
    • Support gui option: guifont, guifontwide, guifont=*, linespace, guicursor. You don't need neovim-gui-shim
    • Support mouse
    • Support for drawing borders and shadows in a float window
    • Independent font settings per window (currently experimental)
    • Attach feature to a remote nvim
  • Basic feature as a Text Editor
    • Support multi byte character
    • Drag and Drop files
    • Support InputMethod Editor (for east asian users)
  • Miscellaneous
    • Supports application window transparency
    • Desktop Notification of the messages emitted nvim

Requirements

  • Neovim v0.5.0

See Installing Neovim

Getting Started

Pre-built packages for Windows, MacOS, and Linux are found at the Releases page.

Or you can get the latest binary from Github Actions CI. See Actions page.

Mac users can install using homebrew:

brew install --cask goneovim

Usage

See wiki

Screenshots

Workspaces

Smooth Scroll with touchpad

Smooth Scroll for neovim scroll commands

Minimap, External Float Window

Markdown Preview

Development

See Development

Similar projects

Credits

goneovim's People

Contributors

akiyosi avatar darvesh avatar dzhou121 avatar elken avatar kristijanhusak avatar kunzaatko avatar mariappan avatar meain avatar philk avatar pierreglaser avatar shaform avatar smolck avatar tssm avatar xearty avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.