explaingit

onivim/oni

11,253TypeScriptAudience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

A code editor that combines Vim's keyboard-driven modal editing style with a modern graphical window and IDE features like code completion, error highlighting, and a fuzzy file finder, built on top of Neovim.

Mindmap

mindmap
  root((oni))
    What it does
      Modal editing
      Graphical window
      Code completion
      Error highlighting
    Tech stack
      TypeScript
      Neovim
      JavaScript plugins
    Use cases
      Vim users wanting GUI
      Plugin development
      File navigation
    Audience
      Developers
      Vim enthusiasts
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Use Vim's keyboard-driven editing inside a graphical window with IDE features like code completion and syntax error highlighting.

USE CASE 2

Write editor plugins in JavaScript instead of VimL to extend Oni's functionality with familiar web development skills.

USE CASE 3

Navigate files quickly using a built-in fuzzy file finder without reaching for the mouse.

USE CASE 4

Follow an interactive tutorial to learn Vim-style modal editing in a graphical environment.

Tech stack

TypeScriptNeovimJavaScript

Getting it running

Difficulty · moderate Time to first run · 30min

Requires Neovim to be installed separately, project was in pre-1.0 unstable state at time of last README update.

Free to use for any purpose, including commercial projects, as long as you keep the copyright notice.

In plain English

Oni is a code editor that pairs the keyboard-driven editing style of Vim with a modern graphical interface and IDE-like features. It is built on top of Neovim, a modernized version of Vim, and adds a visual layer and developer tooling on top of it. Vim and Neovim use a style called modal editing, where pressing keys does different things depending on which mode you are in. In normal mode, you navigate and run commands with keyboard shortcuts, in insert mode, you type text. This approach is popular among developers who prefer working without reaching for a mouse. Oni brings that editing model to a graphical window rather than a plain terminal. On top of Neovim, Oni adds features you would find in editors like Visual Studio Code: code completion, quick information about code symbols, syntax and compilation error highlighting, a fuzzy file finder, a status bar, and an embedded browser. An interactive tutorial is also included. Plugins can be written in JavaScript instead of VimL, the built-in Vim scripting language, which makes extension development more accessible to a wider range of developers. The editor runs on Windows, Mac, and Linux. At the time of this README, the project was under active development and considered unstable before a 1.0 release. It is open source under the MIT license and accepts financial support through Patreon, Open Collective, and BountySource.

Copy-paste prompts

Prompt 1
I want to set up the Oni editor on macOS with Neovim. Help me install Oni, configure my init.vim, and write a basic JavaScript plugin that adds a custom keybinding.
Prompt 2
Show me how to configure Oni to add code completion and error highlighting for a TypeScript project, similar to what I'd get in Visual Studio Code.
Prompt 3
Help me migrate my existing Vim configuration and VimL plugins to work inside Oni's JavaScript plugin environment.
Prompt 4
How do I use Oni's embedded browser alongside my code editor to preview web output while I'm editing HTML and CSS files?
Open on GitHub → Explain another repo

← onivim on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.