Convert Figma logo to code with AI

onivim logooni2

Native, lightweight modal code editor

7,850
281
7,850
554

Top Related Projects

89,018

Vim-fork focused on extensibility and usability

14,637

:star: Vim for Visual Studio Code

18,785

🌙 LunarVim is an IDE layer for Neovim. Completely free and community driven.

26,050

Blazing fast Neovim framework providing solid defaults and a beautiful UI, enhancing your neovim experience.

13,290

AstroNvim is an aesthetic and feature-rich neovim config that is extensible and easy to use with a great set of plugins

20,301

Neovim config for the lazy

Quick Overview

Oni2 is a modern modal editor built with native performance and extensibility in mind. It aims to provide a fast, feature-rich editing experience with the power of Vim-style modal editing and the extensibility of Visual Studio Code.

Pros

  • Native performance with OCaml and Reason
  • Combines Vim-style modal editing with modern IDE features
  • Extensible architecture supporting VSCode extensions
  • Cross-platform support (Windows, macOS, Linux)

Cons

  • Still in active development, may have stability issues
  • Smaller ecosystem compared to more established editors
  • Learning curve for users new to modal editing
  • Limited documentation for advanced customization

Getting Started

To get started with Oni2:

  1. Download the latest release from the Oni2 GitHub releases page.
  2. Install the application on your system.
  3. Launch Oni2.
  4. (Optional) Install extensions from the built-in marketplace.
  5. Start editing with Vim-style commands or use the GUI for navigation.

Basic usage:

  • Use i to enter insert mode, Esc to return to normal mode.
  • Use : to enter command mode for Vim-style commands.
  • Use Ctrl+P or Cmd+P (on macOS) to open the quick file picker.
  • Access the command palette with Ctrl+Shift+P or Cmd+Shift+P (on macOS).

For more detailed instructions and customization options, refer to the Oni2 documentation.

Competitor Comparisons

89,018

Vim-fork focused on extensibility and usability

Pros of Neovim

  • Larger and more active community, resulting in more plugins and frequent updates
  • Highly extensible with Lua scripting, offering powerful customization options
  • Lightweight and fast, with excellent performance even on older hardware

Cons of Neovim

  • Steeper learning curve, especially for users new to Vim-style editors
  • Less intuitive user interface, which may be challenging for those accustomed to modern IDEs

Code Comparison

Neovim configuration (init.lua):

vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.expandtab = true
vim.opt.shiftwidth = 2

Oni2 configuration (configuration.json):

{
  "editor.lineNumbers": "relative",
  "editor.insertSpaces": true,
  "editor.tabSize": 2
}

Both editors allow for extensive customization, but Neovim's Lua-based configuration offers more flexibility and power compared to Oni2's JSON-based approach. Neovim's configuration is more concise and allows for more complex logic, while Oni2's configuration is more straightforward and easier to understand for beginners.

14,637

:star: Vim for Visual Studio Code

Pros of Vim

  • Lightweight and fast, as it's an extension for VS Code
  • Seamless integration with existing VS Code features and extensions
  • Regular updates and active community support

Cons of Vim

  • Limited to VS Code environment, not a standalone editor
  • May have occasional conflicts with other VS Code extensions
  • Lacks some advanced Vim features found in full Vim implementations

Code Comparison

Vim (VSCodeVim/Vim):

vscode.commands.registerCommand('extension.vim_escape', () => {
    return vscode.commands.executeCommand('vim.remap', '<Esc>');
});

Oni2 (onivim/oni2):

let%hook () = Hooks.effect(
  ~name="oni2.editorSurface.startInsertMode",
  ~onBegin=() => {
    dispatch(Actions.SetInputMode(InsertMode));
    None;
  },
  ()
);

The Vim extension uses JavaScript and integrates directly with VS Code's API, while Oni2 is built with ReasonML and has its own custom implementation of Vim-like functionality.

18,785

🌙 LunarVim is an IDE layer for Neovim. Completely free and community driven.

Pros of LunarVim

  • Open-source and community-driven, with active development and frequent updates
  • Built on top of Neovim, leveraging its speed and extensibility
  • Extensive plugin ecosystem and pre-configured setup for various programming languages

Cons of LunarVim

  • Steeper learning curve for users new to Vim-style editors
  • May require more manual configuration for specific workflows
  • Potentially higher resource usage due to numerous pre-installed plugins

Code Comparison

LunarVim configuration example:

lvim.colorscheme = "lunar"
lvim.format_on_save = true
lvim.leader = "space"

Oni2 configuration example:

{
  "editor.fontSize": 14,
  "editor.fontFamily": "FiraCode-Regular.ttf",
  "editor.lineNumbers": "on"
}

LunarVim focuses on Lua-based configuration, while Oni2 uses JSON for its settings. LunarVim's configuration is more concise and allows for more advanced customization options. Oni2's JSON format may be more familiar to users coming from other modern text editors.

26,050

Blazing fast Neovim framework providing solid defaults and a beautiful UI, enhancing your neovim experience.

Pros of NvChad

  • Lightweight and fast, built on Neovim for improved performance
  • Extensive plugin ecosystem with easy customization options
  • Active community and frequent updates

Cons of NvChad

  • Steeper learning curve for users new to Vim-style editors
  • Limited built-in GUI features compared to Oni2

Code Comparison

NvChad configuration (init.lua):

local custom_init_path = vim.api.nvim_get_runtime_file("lua/custom/init.lua", false)[1]

if custom_init_path then
  dofile(custom_init_path)
end

Oni2 configuration (configuration.json):

{
  "editor.fontSize": 14,
  "editor.fontFamily": "FiraCode-Regular.ttf",
  "editor.lineNumbers": "on"
}

Summary

NvChad is a highly customizable Neovim configuration that offers excellent performance and a rich plugin ecosystem. It's ideal for users comfortable with terminal-based editors and those seeking a lightweight, extensible environment. Oni2, on the other hand, provides a more user-friendly GUI experience with built-in features that may appeal to users transitioning from traditional IDEs. While NvChad excels in speed and flexibility, Oni2 offers a more approachable interface for newcomers to Vim-style editing.

13,290

AstroNvim is an aesthetic and feature-rich neovim config that is extensible and easy to use with a great set of plugins

Pros of AstroNvim

  • Lightweight and fast, built on top of Neovim
  • Extensive plugin ecosystem with easy customization
  • Active community and frequent updates

Cons of AstroNvim

  • Steeper learning curve for users new to Vim-style editors
  • Requires more manual configuration compared to Oni2's out-of-the-box experience

Code Comparison

AstroNvim configuration example:

return {
  colorscheme = "catppuccin",
  plugins = {
    "AstroNvim/astrocommunity",
    { import = "astrocommunity.colorscheme.catppuccin" },
  },
}

Oni2 configuration example:

{
  "editor.fontSize": 14,
  "editor.fontFamily": "Fira Code",
  "oni.useDefaultConfig": false
}

AstroNvim uses Lua for configuration, offering more flexibility and power, while Oni2 uses JSON for a simpler but less customizable setup. AstroNvim's configuration allows for easy plugin management and theme selection, whereas Oni2 focuses on basic editor settings.

AstroNvim is more suitable for users who want a highly customizable Neovim-based environment, while Oni2 aims to provide a more accessible Vim-like experience with a modern UI. Both projects have their strengths, catering to different user preferences and skill levels in the Vim ecosystem.

20,301

Neovim config for the lazy

Pros of LazyVim

  • Lightweight and fast, focusing on Neovim-specific features
  • Extensive plugin ecosystem with easy configuration
  • Active community and frequent updates

Cons of LazyVim

  • Steeper learning curve for users new to Vim/Neovim
  • Limited GUI features compared to Oni2's native UI

Code Comparison

LazyVim configuration example:

return {
  "nvim-treesitter/nvim-treesitter",
  opts = {
    ensure_installed = {
      "lua",
      "vim",
    },
  },
}

Oni2 configuration example:

{
  "editor.fontSize": 14,
  "editor.fontFamily": "Fira Code",
  "oni.useDefaultConfig": false
}

Summary

LazyVim is a Neovim-based configuration framework, while Oni2 is a complete IDE built on Vim concepts. LazyVim offers more flexibility and a lighter footprint, but Oni2 provides a more familiar GUI experience for traditional IDE users. LazyVim's configuration is typically done in Lua, whereas Oni2 uses JSON for its settings. Both projects aim to enhance the Vim editing experience, but they take different approaches to achieve this goal.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Build Status Discord

Onivim 2

Lightweight, Modal Code Editor

:warning: Currently in alpha - may have bugs or instability - use with caution :warning:

Onivim 2

Introduction

Onivim 2 is a reimagination of the Oni editor. Onivim 2 aims to bring the speed of Sublime, the language integration of VSCode, and the modal editing experience of Vim together, in a single package.

Onivim 2 is built in reason using the revery framework.

Onivim 2 uses libvim to manage buffers and provide authentic modal editing, and features a fast, native front-end. In addition, Onivim 2 leverages the VSCode Extension Host process in its entirety - meaning, eventually, complete support for VSCode extensions and configuration.

Goals

  • Modern UX - an experience on par with modern code editors like VSCode and Atom
  • VSCode Plugin Support - use all of the features of VSCode plugins, including language servers and debuggers
  • Cross-Platform - works on Windows, OSX, and Linux
  • Batteries Included - works out of the box
  • Performance - no compromises: native performance, minimal input latency
  • Easy to Learn - Onivim 2 should be comfortable for non-vimmers, too!

The goal of this project is to build an editor that doesn't exist today - the speed of a native code editor like Sublime, the power of modal editing, and the rich tooling that comes with a lightweight editor like VSCode.

Non-goals

  • 100% VimL compatibility - we may not support all features of VimL plugins / configuration.

Documentation

Contributing

We'd :heart: help building Onivim 2!

If you are interested in fixing issues and contributing directly to the code, please see the How to Contribute document, which includes the following:

Please also see our Code of Conduct.

Feedback

License

Onivim 2 source code is licensed under the MIT license.

Onivim 2 downloads, available at https://v2.onivim.io/, are licensed under the Outrun Labs EULA 1.1.

Third-Party Code

Several dependencies have their own set of license terms here: ThirdPartyLicenses.txt

Copyright (c) 2019-2020 Outrun Labs, LLC.