vimtricks.wiki Concise Vim tricks, one at a time.

How do I execute a single normal mode command without leaving insert mode?

Answer

<C-o> (in insert mode)

Explanation

Pressing <C-o> while in insert mode drops you into a special "insert-normal" mode where you can execute exactly one normal mode command, then immediately return to insert mode. This avoids the <Esc> → command → i dance and keeps your editing flow uninterrupted.

How it works

  • While typing in insert mode, press <C-o>
  • Vim enters insert-normal mode (shown as -- (insert) -- in the status line)
  • Execute any single normal mode command (motion, operator, etc.)
  • Vim automatically returns to insert mode at the new cursor position

Example

You're typing in the middle of a line and realize you need to delete the word behind the cursor:

The quick brown fox|  (cursor is here, in insert mode)

Instead of <Esc>bdiwi, just press db`:

The quick fox|  (back in insert mode, ready to keep typing)

Tips

  • <C-o>zz — center the screen on the current line while typing
  • <C-o>O — open a new line above without leaving insert mode
  • <C-o>$ — jump to end of line while staying in insert
  • <C-o>u — undo the last change while staying in insert mode
  • <C-o>p — paste from the default register mid-edit
  • Combine with any motion: <C-o>3j moves down 3 lines and stays in insert

Next

How do I return to normal mode from absolutely any mode in Vim?