Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I press and hold a key and have it repeat in VSCode?

People also ask

How do I repeat code in VS Code?

“how to repeat lines in vscode *” Code AnswerOn Windows: Shift + Alt + Up/Down. On Mac: Shift + Option + Up/Down. On Ubuntu: Ctrl + Shift + Alt + Up/Down.

What is Ctrl Shift P in VS Code?

You can define a keyboard shortcut for any task. From the Command Palette (Ctrl+Shift+P), select Preferences: Open Keyboard Shortcuts File, bind the desired shortcut to the workbench.

What does Ctrl d do in VS Code?

Ctrl+D selects the word at the cursor, or the next occurrence of the current selection. Tip: You can also add more cursors with Ctrl+Shift+L, which will add a selection at each occurrence of the current selected text.

What is key repeating in Vim?

In VS Code with Vim keybindings, you can press and hold a key to repeat it. For instance, holding j to navigate downward.


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

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

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

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.


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


For those of you on VS Code Insiders, just change the Bundle identifier to:

defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false