Onivim 2 User Manual

Onivim 2 User Manual

  • Early Access
  • About
  • Timeline
  • Docs

›Getting Started

Getting Started

  • Why Onivim?
  • Installation
  • Vim Differences
  • Tips for Vim Users
  • Tips for VSCode Users
  • Modal Editing 101

Basic Usage

  • Moving Around
  • Editing and Deleting Text
  • Language Features
  • Visual Mode (Selection)
  • Working with Files
  • Command Line
  • Integrated Terminal

Configuration

  • Settings
  • Key Bindings
  • Extensions

Languages

  • Reason, OCaml and Bucklescript
  • Python
  • Go
  • Java
  • C / C++
  • C#
  • Rust

For Developers

  • Architecture
  • Building from Source
  • How to Contribute
  • Style Guide
  • License Key Bounty

Other

  • FAQ
  • Appendix A: v2 Design Doc
  • Appendix B: More Resources
Edit

Tips for users coming from Vim

How do I get the tabs to behave as they do in Vim?

Add these settings to your configuration:

  "oni.layout.singleTabMode": true,
  "oni.layout.layoutTabPosition": "top",

How do I replicate my .vimrc?

Using the "experimental.viml" setting you can already successfully run many VimL commands like keybindings. But it is experimental for good reason. Many commands do not work, and there's no overview of what does and does not work.

This setting will eventually be replaced with a mechanism that will support a larger and more well-defined subset of VimL. See this issue for details.

How do I bind to Vim motions and commands using Oni's native keybinding configuration?

Ex commands are supported by prefixing the command with : as you would when typing it in Normal mode. For example:

  {"key": "kk", "command": ":split", "when": "editorTextFocus"},
  {"key": "<C-D>", "command": ":d 2", "when": "insertMode"}

There's currently no support for creating native keybindings for Vim motions. For now, please use VimL keybindings with the "experimental.viml" setting.