Skip to content
/ oni Public
forked from onivim/oni

Oni: Modern Modal Editing - powered by Neovim

License

Notifications You must be signed in to change notification settings

chenglou/oni

 
 

Repository files navigation

alt text

IDE powered by Neovim + React + Electron

Build Status Build Status Join the chat at https://gitter.im/onivim/Lobby Backers on Open Collective Sponsors on Open Collective BountySource Active Bounties Total Downloads

Supporting Oni

Oni is an MIT-licensed open source project. Please consider supporting Oni by:

Sponsors via OpenCollective

Support this project by becoming a sponsor. Your logo will show up here with a link to your website.

Introduction

Oni is a neovim front-end UI with rich IDE-like UI integration points, drawing inspiration from VSCode, Atom, and LightTable.

This repository is under active development, and until 1.0 please consider everything unstable.

Check out Releases for the latest binaries, or Build Oni from source. Consider making a donation via BountySource if you find this project useful!

Features

Oni brings several IDE-like integrations to neovim:

Oni is cross-platform and supports Windows, OS X, and Linux.

Installation

  • Check out Releases for the latest binary.
  • If you'd prefer to build from source, see Development

NOTE: Windows & OSX releases come with a bundled neovim release, so you do not need a neovim install on those platforms.

Windows

  • Download the Oni installer for Windows
  • Once it is downloaded, run the installer. This will only take a minute.
  • By default, Oni is installed under C:\Program Files (x86)\Oni for a 64-bit machine.

You can also find install via a zip archive

You may want to add Oni to your %PATH%, so that from the console, you can open Oni via oni

Mac

  • Download Oni for Mac
  • Double-click on the archive to expand
  • Drag Oni.app to the Applications folder

Linux

Debian and Ubuntu based distributions

If you do not have Neovim, follow the instructions to Install Neovim and ensure the 'nvim' binary is available. Version 0.2.1 is required..

A tar.gz is also available.

Red Hat based distributions (Fedora, CentOS)

If you do not have Neovim, follow the instructions to Install Neovim and ensure the 'nvim' binary is available. Version 0.2.1 is required..

  • Download the .rpm package
  • Install the package with sudo dnf install <file>.rpm

A tar.gz is also available.

Arch based distributions

  • Available via the AUR
  • Install the package with yaourt -S oni

A tar.gz is also available.

Goals

The goal of this project is to provide both the full-fledged Vim experience, with no compromises, while pushing forward to enable new scenarios.

  • Modern UX - The Vim experience should not be compromised with poor user experiences that stem from terminal limitations.
  • Rich plugin development - using JavaScript, instead of VimL, allowing deep-language integration.
  • Cross-platform support - across Windows, OS X, and Linux.
  • Batteries included - rich features are available out of the box - minimal setup needed to be productive. TypeScript development is the canonical example, but the hope is that other language providers will be included. Later, an included package manager will make it simple to find and install plugins.
  • Performance - no compromises, Vim is fast, and Oni should be fast too.
  • Ease Learning Curve - without sacrificing the Vim experience

Vim is an incredible tool for manipulating text at the speed of thought. With a composable, modal command language, it is no wonder that Vim usage is still prevalent today even in the realm of modern editors.

However, going from thought to code has some different challenges than going from thought to text. IDEs today provide several benefits that help to reduce cognitive load when writing code, and that benefit is tremendously important - not only in terms of pure coding efficiency and productivity, but also in making the process of writing code enjoyable and fun.

The goal of this project is to give an editor that gives the best of both worlds - the power, speed, and flexibility of using Vim for manipulating text, as well as the rich tooling that comes with an IDE.

Documentation

  • Check out the Wiki for documentation on how to use and modify Oni.
  • FAQ
  • Roadmap

Contributing

There many ways to contribute to Oni:

Acknowledgements

Oni is an independent project and is made possible by the support of some exceptional people. Big thanks to the following people for helping to realize this project:

  • the neovim team, especially justinmk and tarruda - Oni would not be possible without their vision
  • jordwalke for his generous support, inspiration, and ideas. And React ;)
  • keforbes for helping to get this project off the ground
  • tillarnold for giving us the oni npm package name
  • mhartington for his generous support
  • badosu for his support, contributions, and managing the AUR releases
  • All our current monthly sponsors and backers
  • All of our contributors - thanks for helping to improve this project!

Several other great neovim front-end UIs here served as a reference, especially NyaoVim and VimR. I encourage you to check those out!

Thank you!

Contributors

This project exists thanks to all the people who contribute. [Contribute].

License

MIT License. Copyright (c) Bryan Phelps

Windows and OSX have a bundled version of Neovim, which is covered under Neovim's license

Bundled Plugins

Bundled plugins have their own license terms. These include:

About

Oni: Modern Modal Editing - powered by Neovim

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 88.8%
  • Vim Script 6.8%
  • CSS 2.3%
  • JavaScript 1.7%
  • Inno Setup 0.2%
  • Shell 0.1%
  • HTML 0.1%