Skip to content

Vim Mode

Ariv includes a full Vim emulation layer for the editor, powered by CodeMirror 6’s Vim extension. If you’re comfortable with Vim, you can edit notes using the motions and commands you already know.

Open Settings > Editor and toggle Vim Mode on. The setting key is editor.vimMode.

Once enabled, the editor immediately switches to Normal mode and the cursor changes to a block. No restart required.

Vim Mode supports the four core Vim modes:

ModeHow to enterPurpose
NormalEscape from any modeNavigate and manipulate text
Inserti, a, o, A, I, O, etc.Type and edit text directly
Visualv, V, or Ctrl+V from Normal modeSelect text for operations
Command-line: from Normal modeRun Ex commands

Standard Vim motions work as expected:

MotionAction
h / j / k / lMove left / down / up / right
w / b / eNext word / previous word / end of word
0 / $Start / end of line
^First non-blank character of line
gg / GTop / bottom of document
{ / }Previous / next paragraph
f{char} / F{char}Jump to next / previous occurrence of character
t{char} / T{char}Jump to just before next / previous occurrence of character
%Jump to matching bracket
CommandAction
ddDelete the current line
yyYank (copy) the current line
p / PPaste after / before cursor
ccChange the current line (delete and enter Insert mode)
xDelete the character under the cursor
r{char}Replace the character under the cursor
uUndo
Ctrl+RRedo
.Repeat the last command
>> / <<Indent / outdent the current line
JJoin the current line with the next
CommandAction
/patternSearch forward for pattern
?patternSearch backward for pattern
nJump to the next match
NJump to the previous match
*Search forward for the word under the cursor
#Search backward for the word under the cursor

Text objects let you operate on structured chunks of text. Combine them with operators like d (delete), c (change), or y (yank).

Text objectWhat it selects
iw / awInner word / a word (including surrounding space)
is / asInner sentence / a sentence
ip / apInner paragraph / a paragraph
i" / a"Inside double quotes / including the quotes
i' / a'Inside single quotes / including the quotes
i( / a(Inside parentheses / including the parentheses
i[ / a[Inside brackets / including the brackets
i{ / a{Inside braces / including the braces

For example, ci" changes the text inside double quotes, and dap deletes an entire paragraph.

CommandAction
vEnter character-wise Visual mode
VEnter line-wise Visual mode
Ctrl+VEnter block-wise Visual mode

Once in Visual mode, use any motion to extend the selection, then apply an operator:

  • d to delete the selection
  • y to yank the selection
  • c to change the selection
  • > / < to indent / outdent the selection
  • ~ to toggle case

Press : in Normal mode to open the command line. Supported commands include:

CommandAction
:wSave the current note
:qClose the current note
:wqSave and close
:s/old/new/Replace first occurrence on the current line
:s/old/new/gReplace all occurrences on the current line
:%s/old/new/gReplace all occurrences in the document
:nohClear search highlighting

Vim Mode handles text editing inside the note. Ariv’s own shortcuts handle everything outside the editor — navigation, panels, search, and commands. The two layers work together without conflict.

LayerExamplesWhen it applies
Vimdd, yy, /search, :wWhile the editor has focus
ArivCmd+P, Cmd+E, Cmd+OAlways

Ariv shortcuts that use Cmd (or Ctrl on Windows) as a modifier continue to work normally in Vim mode. For example, Cmd+P still opens the Command Palette, and Cmd+E still toggles the sidebar, even when you’re in Normal mode.

When you enable Vim Mode, you may also want to adjust these editor settings for a more authentic experience:

  • Cursor style: Set to Block. In Normal mode the cursor automatically displays as a block, but setting this ensures consistency.
  • Cursor blink: Turn off. A blinking block cursor is distracting in Normal mode, and traditional Vim uses a steady cursor.

Both settings are available in Settings > Editor.


Related: Shortcut Reference — Complete list of all Ariv keyboard shortcuts | Scratchpad — Persistent scratch space for temporary text