Reputation: 4387
I use the vim plugin and I typically scroll in vim by just holding j. In VSCode holding j just does a single j command, no matter how long it's held for.
Even in vanilla vscode this also doesn't work - problematic if you're trying to type long blocks of ########################### for comment separators. Any idea how to enable this functionality?
Upvotes: 403
Views: 125102
Reputation: 1
If it's not working for you in macos, try to log out your macos and log in again. It drove me crazy it didn't work though everyone said to run the same command until I log out the macos.
Upvotes: 0
Reputation: 459
If on mac, you should refer to the extension's Mac-specific instructions: https://github.com/VSCodeVim/Vim#mac
At the moment (Aug 2022), it says:
To enable key-repeating, execute the following in your Terminal, log out and back in, and then restart VS Code:
For VS Code users:
defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
For VS Code Insider users:
defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false
For VS Codium users:
defaults write com.visualstudio.code.oss ApplePressAndHoldEnabled -bool false
For VS Codium Exploration users:
defaults write com.microsoft.VSCodeExploration ApplePressAndHoldEnabled -bool false
If necessary, reset global default:
defaults delete -g ApplePressAndHoldEnabled
We also recommend increasing Key Repeat and Delay Until Repeat settings in System Preferences -> Keyboard.
Upvotes: 14
Reputation: 51
For my M1 MacBook Pro, I had to run
sudo defaults write -g ApplePressAndHoldEnabled -bool false
as noappleonhead said
Then had to restart/relogin Mac. And it started to work fine.
Upvotes: 5
Reputation: 196
If you are on Mac M1 what I had to do was run what @NoAppleOnHead said of:
sudo defaults write -g ApplePressAndHoldEnabled -bool false
Then after doing so restart your Mac and you should be good to go
Upvotes: 1
Reputation: 4768
Operating System : Mac
To enable key-repeating execute the following in your Terminal and restart VS Code:
$ defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false # For VS Code
$ defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false # For VS Code Insider
$ defaults write com.visualstudio.code.oss ApplePressAndHoldEnabled -bool false # For VS Codium
$ defaults delete -g ApplePressAndHoldEnabled # If necessary, reset global default
We also recommend increasing Key Repeat and Delay Until Repeat settings in System Preferences -> Keyboard.
this is all in our readme https://github.com/VSCodeVim/Vim/blob/master/README.md#mac-setup
Upvotes: 18
Reputation: 79
None of the above worked for me with my new laptop, instead I had to use:
defaults write -g ApplePressAndHoldEnabled -bool false
Upvotes: 6
Reputation: 62
The best answer from Steve doesn't work for my mac 'defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false', however below works for me:
sudo defaults write -g ApplePressAndHoldEnabled -bool false
reference: https://github.com/VSCodeVim/Vim/issues/345
Upvotes: 3
Reputation: 1640
For those of you on VS Code Insiders, just change the Bundle identifier to:
defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false
Upvotes: 2
Reputation: 39
Though I reset with above mentioned commands and even after reboot, Once I open VSCode they are getting reset, so I had 'code' script to set them back every time I open VSCode editor. $ cat code VSCODE_CWD="$PWD" open -n -b "com.microsoft.VSCode" --args $* & defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false defaults delete -g ApplePressAndHoldEnabled
Upvotes: 0
Reputation: 148
If you're on a mac and using VSCodium:
defaults write com.visualstudio.code.oss ApplePressAndHoldEnabled -bool false
Other answers targeting com.microsoft.VSCode
do not work because you're not running MS VSCode. The command default write
generates/updates files in ~/Library/Preferences/
appended with .plist
, you have to target the right file.
My software and versions:
macOS Mojave 10.14.6
VSCodium 1.41.1
- Vim (by vscodevim) 1.12.4 with neovim enabled
Neovim 0.4.3
Vim 8.1.2250
Upvotes: 10
Reputation: 8594
To disable the Apple press and hold for VSCode only, run this command in a terminal:
defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
Then restart VSCode.
To re-enable, run this command in a terminal:
defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool true
Upvotes: 857
Reputation: 749
The official vim-plugin for VS Code mentions how to set it up on macOS
defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
defaults delete -g ApplePressAndHoldEnabled # If necessary, reset global default
Upvotes: 69
Reputation: 3134
The answer by Steve above didn't quite work for me because of global settings. It also left me curious about where to find the com.microsoft.VScode
domain name for an app. Here is what worked for me and a generalized formulation:
To enable repeats for a specific app, like VSCode, first make sure that there isn't an overriding global setting.
defaults delete -g ApplePressAndHoldEnabled
Then enable the setting for the specific app, you can find the domain name of an app by finding it in the Info.plist
document under the Contents folder where it is installed.
Example
<key>CFBundleIdentifier</key>
<string>com.microsoft.VSCode</string>
Then set the setting on the command line.
defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
You can use this pattern other app specific settings as well. Just make sure that your settings aren't being overwritten globally.
For more information on defaults
type defaults help
. One more note, you don't need to run this as sudo
if your user is already an admin.
Upvotes: 21
Reputation: 10914
You are on OSX, correct? If so, the issue might be Apple's "Press&Hold", where you can select alternative characters on long presses.
You can disable this "feature" with a defaults command in the terminal:
defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false
You have to restart VSCode afterwards.
To reenable the previous behaviour:
defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool true
Upvotes: 106