Warp documentation
  • 🚀Getting Started
    • Quickstart Guide
    • What is Warp?
    • Migrate to Warp
    • Using Warp with [zsh|bash|fish|pwsh]
    • Privacy
    • Refer a Friend & Earn Rewards
    • Warp Preview & Alpha Program
    • Changelog
  • 🎨Appearance
    • Themes
    • Custom Themes
    • Prompt
    • Input Position
    • Text, Fonts, & Cursor
    • Size, Opacity, & Blurring
    • Pane Dimming & Focus
    • Blocks Behavior
    • Tabs Behavior
    • App Icons
  • 📕Features
    • Warp AI
      • Active AI
      • Agent Mode
      • Generate
      • Model Context Protocol
      • Voice
      • Rules
    • Command Palette
    • Warp Drive
      • Notebooks
      • Workflows
      • Prompts
      • Environment Variables
      • Warp Drive on the Web
    • Teams
    • Session Sharing
    • Blocks
      • Block Basics
      • Block Actions
      • Block Sharing
      • Block Filtering
      • Background Blocks
      • Sticky Command Header
    • Modern Text Editing
      • Alias Expansion
      • Command Inspector
      • Syntax & Error Highlighting
      • Vim Keybindings
    • Command Entry
      • Command Corrections
      • Command Search
      • Command History
      • Synchronized Inputs
      • YAML Workflows
    • Command Completions
      • Completions
      • Autosuggestions
    • Session Management
      • Launch Configurations
      • Session Navigation
      • Session Restoration
    • Window Management
      • Global Hotkey
      • Tabs
      • Split Panes
    • Warpify
      • Subshells
      • SSH
    • Accessibility
    • Find
    • Files, Links, & Scripts
    • Markdown Viewer
    • Working Directory
    • Smart-Select
    • Full-screen Apps
    • Keyboard Shortcuts
    • Notifications & Audible Bell
    • Settings Sync (Beta)
    • Quit Warning
    • Integrations
    • URI Scheme
    • Network Log
    • Secret Redaction
    • Linux
  • 📊How Does Warp Compare?
    • Performance
    • Terminal features
  • ❓Help
    • Sending Feedback & Logs
    • Plans, Subscriptions & Pricing
    • Updating Warp
    • Using Warp Offline
    • Logging out & Uninstalling
    • Known Issues
    • Troubleshooting Login Issues
    • Open Source Licenses
Powered by GitBook
On this page
  • About Vim keybindings
  • How to enable Vim Keybindings
  • Customizing Keybindings
  • Supported Keybindings
  • Movement
  • Editing
  • Search
  • Mode Switching
  • Registers
  • Feedback

Was this helpful?

  1. Features
  2. Modern Text Editing

Vim Keybindings

Use Vim keybindings (also known as Vim mode) to edit commands in Warp's input editor.

PreviousSyntax & Error HighlightingNextCommand Entry

Last updated 4 months ago

Was this helpful?

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 (also known as Vim mode) 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 (also known as Vim mode).

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

  • Through the , 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 search for "Exit Vim Insert Mode".

Supported Keybindings

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

Movement

Basic

Command(s)
Description

h, j, k, l

single-char movement

<space>, <backspace>

single-char movement with line wrap

w, W, b, B, e, E

word movement

ge, gE

end of previous word

$

end of line

0

beginning of line

^

first non-whitespace character of line

%

jump to matching bracket

[, ]

prev/next unmatched bracket

_

beginning of the current line

+

first non-whitespace character of the next line

-

first non-whitespace character of the previous line

Multi-line-related

Command(s)
Description

gg, G

jump to first/last line

Editing

Command(s)
Description

r

replace character under cursor

d, D

delete a range or object

c, C

change a range or object (delete, then go to insert mode)

s, S

substitute (like change, but can only delete at the cursor)

x, X

delete under cursor

y, Y

yank (copy) into the clipboard

p, P

paste from the clipboard

u, ⌃r

undo, redo

~

toggle upper/lowercase under cursor

gu

lowercase under cursor (u in visual mode)

gU

uppercase under cursor (U in visual mode)

J

join current and following lines

.

repeat last edit

Text Objects

Command(s)
Description

i

inner (exclude delimiters in text object)

a

around (include delimiters in text object)

w, W

whitespace-delimited string (word)

", ', ```

quote-delimited string

(, {, [

parenthesized/bracketed string

Search

Character Search

Command(s)
Description

t, T, f, F

find next/prev matching character on line

;

repeat last character search in the same direction

,

repeat last character search in the opposite direction

General Search

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

Command(s)
Description

/, ?, *, #

open Warp command search

Mode Switching

Command(s)
Description

i

insert text before the cursor

I

insert text before the first non-whitespace character in the line

a

append text after the cursor

A

append text at the end of the line

o

begin new line below the cursor and insert text

O

begin new line above the cursor and insert text

v

visual character mode

V

visual line mode

Registers

Command(s)
Description

"

register prefix

Warp currently supports the following registers:

Register name
Description

a–z, A–Z

named registers

+

system clipboard

*

system clipboard

"

unnamed register, containing the text of the last delete or yank

Feedback

See for more information.

See for more information.

See for more information.

See for more information.

See and for more information.

See for more information.

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

📕
Command Palette
Command Palette
Vim docs: motion
Vim docs: editing
Vim docs: text objects
Vim docs: left-right motions
Vim docs: insert
Vim docs: visual mode
Vim docs: registers
GitHub Issues