Skip to content

colomb8/rambo.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rambo.nvim - insert mode with no mercy

A Neovim plugin that supercharges Insert Mode with modern editing behavior.

insert mode with no mercy

Image used under fair use, for illustrative and non-commercial purposes. All rights to the character and image belong to their respective owners.

Vision

  • Normal Mode: Stay true to Vim, maintain your Vim proficiency and benefit from its full power. Use hjkl and all of Vim's native keybindings.
  • Insert Mode: Becomes fluid, intuitive, and modern (like Sublime Text, Notepad++, or other contemporary editors). Use ← ↓ ↑ → , Ctrl for jumps, Shift for selections, plus motion helpers like Home, End, PageUp, PageDown.

The idea isn't to replace Normal Mode, but to elevate Insert Mode — making it ideal for lightweight, quick and (perhaps not-so) dirty edits without ever leaving it.

Love these keys...

Why this approach?

  • Normal Mode is where Vim shines — efficient, modal, powerful. Overloading it with arrow keys or modern behavior is a waste of potential. Insert Mode, in contrast, is underpowered — users are often forced to exit it just to perform basic actions.
  • For most non-vim users, selecting with Shift + motion is second nature. also the behavior of Select mode feel natural. Combined with the natural feel of Select Mode, this plugin offers a gentle bridge into Vim, making it more accessible to newcomers.
  • Friendly even for non-coding workflows — ideal for quick edits, note-taking and general text manipulation.
  • All this, without compromising Vim's philosophy.

Features

Outside Insert Mode, everything behaves as expected.
Inside Insert Mode, you get enhanced with modern editing capabilities:

  • Text selection using Shift + Arrow Keys.
  • When a selection is active, typing replaces the selection — without modifying Vim registers.
  • Fast cursor movement with Ctrl + and (similar to Vim's b and e but enhanced) Note: it relies on what set in vim.opt.iskeyword.
  • Jump between paragraphs with Ctrl + and (same as vim's { and }).
  • Word-wise selection with Ctrl + Shift + Arrow Keys.
  • Full support for Home, End, Page Up, and Page Down. Ctrl + Home jumps to the beginning of the file, Ctrl + End to the end.
  • Copy/Cut/Paste op.: Ctrl + C, Ctrl + V, and Ctrl + X for copy, paste, and cut — fully compatible with the system clipboard. (*)
  • Wrapping utilities: after selecting text, press e.g. ) to wrap it in parentheses — selection remains active, allowing for rapid combined operations, i.e. ) and then " does ('ciao').
  • Search navigation with F3 and F2 (or Shift-F3). Press F4 to exit highlight mode (if enabled).
  • Ctrl + F opens the search prompt. If text is selected, it is used as the search query. (*)
  • Undo/Redo with Ctrl + Z and Ctrl + Y. Note: it's reccomanded to set undo breakpoints in insert mode for a better experience. (*)
  • Move lines up/down with Alt + ↑ / ↓. Works on single or multiple selected lines.
  • While selecting one or more lines, use Tab and Shift + Tab to indent or dedent.
  • Ctrl + a for select all. (*)
  • Ctrl + l for convert Select to S-Line. (*)
  • Insert key allows to quickly switch between Select and Visual mode.

(*) Note: Ctrl can be replaced with Meta (alt) with operations_key setting.

Installation and Config

Using lazy.nvim:

{
  "colomb8/rambo.nvim",
  config = function()
    require("rambo").setup({
      -- operations_key = 'C', -- 'C' or 'M'
    })
  end,
},

setup() is optional — call it only if you want to override defaults.

Configuration:

  • C for Ctrl or M for Meta (Alt); it sets the key for Copy/Cut/Paste, Undo/Redo, Search, Select All and convert Select to S-Line; default is C.

Roadmap

  • :help Vim documentation – provide Vim help file (:help rambo) for discoverability
  • Plugin custom configuration – allow users to customize some key mappings and behavior via setup({ ... })
  • Unicode support – extend compatibility beyond ASCII for smooth editing also in international contexts.
  • Simple multicursor support – implement basic but handy multicursor editing.

License

MIT

About

insert mode with no mercy

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages