Fix VSCodeVim Arrow Key Motion in Cursor on macOS

If you're using the VSCodeVim extension in Cursor on macOS and notice that arrow key motion or held-down keys (like h
, j
, k
, l
) don’t repeat, you're not alone.
This is a common macOS issue due to how key repeat is disabled for some Electron-based apps by default.
Here’s how to fix it.
✅ The Problem
After installing the Vim extension in Cursor, motions like:
Holding down
j
to scroll downRepeating
l
to move forwardEven arrow key presses inside Insert mode
...don’t behave like they should in Vim.
✅ The Fix: Enable Key Repeat for Cursor
- Find Cursor's app ID (already known for most versions):
osascript -e 'id of app "Cursor"'
You should see:
com.todesktop.230313mzl4w4u92
- Enable key repeat just for Cursor:
defaults write com.todesktop.230313mzl4w4u92 ApplePressAndHoldEnabled -bool false
- (Optional) If you previously disabled key repeat globally and want to clean that up:
defaults delete -g ApplePressAndHoldEnabled
- Restart Cursor for the change to take effect.
💡 Bonus: Why This Matters
macOS’s default behavior favors accent selection when holding a key. That’s useful for typing letters like “é” — but for devs using Vim, it breaks the expected motion behavior.
By targeting the fix to Cursor only, you preserve macOS defaults while enabling a true Vim experience in your editor.
✅ Result
You can now:
Navigate smoothly using
hjkl
Hold down keys for continuous motion
Enjoy a proper Vim setup inside Cursor on macOS
Subscribe to my newsletter
Read articles from Jérôme Hoarau directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Jérôme Hoarau
Jérôme Hoarau
Cloud Enthusiast