In-Place Mode

Simulate Vim motions directly in any macOS application by intercepting keystrokes and injecting native key events.

In-place mode showing Ctrl+u and Ctrl+d scrolling

How it works

In-Place Mode intercepts your keystrokes using macOS Accessibility APIs and translates Vim commands into native key events. When you press j in Normal mode, ovim sends a Down arrow key to the active application. When you type dw, it selects a word and deletes it.

This means it works in any application - browsers, text editors, chat apps, email clients - without needing per-app plugins or extensions.

Mode switching

Toggle between Normal and Insert modes with Caps Lock (configurable in Settings). In Normal mode, Vim motions are active. In Insert mode, keys behave normally.

KeyAction
Caps LockToggle Normal/Insert mode
EscReturn to Normal mode
i / IInsert at cursor / line start
a / AAppend after cursor / line end
o / OOpen line below / above
vEnter Visual mode
s / SSubstitute character / line

Basic motions

KeyAction
h j k lLeft, down, up, right
w / b / eWord forward / backward / end
0 / $Line start / end
{ / }Paragraph up / down
gg / GDocument start / end
Ctrl+u / Ctrl+dHalf page up / down

Operators and text objects

Operators combine with motions. For example, dw deletes a word, y$ yanks to line end.

KeyAction
dDelete
yYank (copy)
cChange (delete + insert)
iw / awInner word / around word
dd / yy / ccDelete / yank / change line
D / C / YDelete / change / yank to line end

Counts

Prefix commands with numbers: 5j moves down 5 lines, 3dw deletes 3 words, 10x deletes 10 characters.

Indicator

A floating indicator shows the current mode (Normal, Insert, Visual). You can reposition it, resize it, or hide it entirely from Settings.

Repositioning the mode indicator

Widgets

Display battery status, time, or text selection info alongside the mode indicator.

ovim widgets