Vim Keybindings

Use Vim keybindings to edit commands in Warp's input editor.

About Vim keybindings

The Vi family of programs (including Vim and Neovim) are modal text editors that allow for keyboard-driven text editing. Several shells, including bash and zsh, implement vi-style keybindings. Warp's input editor was built natively to support more modern text editing experiences, which means it replaces the shell's editor capabilities. Warp has its implementation of Vim keybindings you can use.

How to enable Vim Keybindings

With bash and zsh, Warp attempts to detect the shell's keybinding settings. If a shell vi mode is detected, Warp may suggest enabling Vim keybindings.

To manually toggle Vim keybindings in Warp's input editor:

  • Through the Command Palette, search for "Vim Keybindings".

  • Through Settings > Features > Editor, toggle "Edit commands with Vim keybindings".

As in bash and zsh's vi mode implementations, the editor starts in insert mode. Pressing CTRL-C or ENTER clears any pending command state.

Customizing Keybindings

At the moment, Warp only supports default Vim keybindings.

One exception is the keyboard shortcut for exiting insert mode, which can be rebound under Settings > Keyboard Shortcuts > Exit Vim Insert Mode, or through the Command Palette search for "Exit Vim Insert Mode".

Supported Keybindings

Below is a list of the vim functionality implemented in Warp so far.

Movement

See Vim docs: motion for more information.

Basic

Editing

See Vim docs: editing for more information.

Text Objects

See Vim docs: text objects for more information.

See Vim docs: left-right motions for more information.

Unlike Vim, general search commands don't search within the buffer. Instead, they open Warp's native command search.

Mode Switching

See Vim docs: insert and Vim docs: visual mode for more information.

Registers

Warp currently supports the following registers:

See Vim docs: registers for more information.

Feedback

The best way to report bugs and request features is through Warp's GitHub Issues page. Please note that the issue or request is for Vim Keybindings.

Last updated