/oni

Oni: An IDE powered by Neovim

Primary LanguageTypeScriptMIT LicenseMIT

Logo

Modern Modal Editing


🚧 NOTE: We're now shifting our focus to building Oni 2 👷‍♂️ 👷‍♀️


Build Status Build Status codecov

Join the chat on discord! Total Downloads

Introduction

Oni is a new kind of editor, focused on maximizing productivity - combining modal editing with features you expect in modern editors. Oni is built with neovim, and inspired by VSCode, Atom, LightTable, and Emacs

The vision of Oni is to build an editor that allows you to go from thought to code as easily as possible - bringing together the raw editing power of Vim, the feature capabilities of Atom/VSCode, and a powerful and intuitive extensibility model - wrapped up in a beautiful package.

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 OpenCollective BountySource if you find this project useful!

Features

Oni brings several IDE-like integrations to neovim:

And more coming - check out our Roadmap

Oni is cross-platform and supports Windows, Mac, and Linux.

If you're a Vim power user, and don't need all these features, check out our minimal configuration.

Installation

We have installation guides for each platform:

The latest binaries are available on our Releases page, and if you'd prefer to build from source, check out our Development guide.

Goals

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

  • Modern UX - The Vim experience should not be compromised by terminal limitations.
  • Rich plugin development - using JavaScript, instead of VimL.
  • 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.
  • 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.

However, going from thought to code has some different challenges than going from thought to text. Code editors 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. We want to make coding as efficient, fast, and fun as we can!

Documentation

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

Available Plugins

Some available plugins created by Oni users are listed below (if you'd like to add your plugin to this list please create a PR updating this README with the details).

Contributing

There many ways to get involved & 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
  • Akin909 for his extensive contributions
  • CrossR for polishing features and configurations
  • Cryza for the webgl renderer
  • 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 have contributed:

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: