Comment puis-je appuyer et maintenir une touche et la faire répéter dans VSCode?

125

J'utilise le plugin vim et je fais généralement défiler vim en maintenant simplement j. Dans VSCode, le maintien de j ne fait qu'une seule commande j, quelle que soit la durée de son maintien.

Même dans le vscode vanille, cela ne fonctionne pas non plus - problème si vous essayez de taper de longs blocs de ######################### pour séparateurs de commentaires. Une idée comment activer cette fonctionnalité?

jjcm
la source

Réponses:

306

Pour désactiver l'Apple appuyez et maintenez pour VSCode uniquement, exécutez cette commande dans un terminal:

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false

Puis redémarrez VSCode.

Pour réactiver, exécutez cette commande dans un terminal:

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool true
Steve Burns
la source
5
Fonctionne parfaitement
texasbruce
2
appréciez la version "n'affectant pas les choses globalement" que vous avez fournie.
jrrs
2
cela ne fonctionne pas pour moi VSCode Version 1.31.1 (1.31.1), macOS 10.14.2.
Sunny Patel
Cela me rendait fou. Votre solution a parfaitement fonctionné. Merci d'avoir partagé ça.
muammar
1
Une variante utile consiste à donner l' -appindicateur au lieu d'un domaine, car le nom de l'application est plus facile à trouver que le domaine, en particulier pour les versions atypiques de VSCode. J'utilise la version VSCodium, donc j'ai pu obtenir l'effet désiré avecdefaults write -app VSCodium ApplePressAndHoldEnabled -bool false
Warren Young le
40

Vous êtes sur OSX, n'est-ce pas? Si tel est le cas, le problème pourrait être le "Appuyez et maintenez" d'Apple, où vous pouvez sélectionner des caractères alternatifs sur de longues pressions.

Vous pouvez désactiver cette "fonctionnalité" avec une commande par défaut dans le terminal:

defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false

Vous devez redémarrer VSCode par la suite.

Pour réactiver le comportement précédent:

defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool true
kwood
la source
1
Cela a fonctionné pour moi. La fonctionnalité fonctionnait bien pour moi dans Atom, mais pas avec vscode. Une raison pour laquelle cela devrait fonctionner dans l'un et pas dans l'autre?
Matt
Vous pouvez également le désactiver sur une base par application, il est possible qu'Atom expédie cela par défaut (via defaults write com.github.atom ApplePressAndHoldEnabled -bool falseou quel que soit l'identifiant de domaine correct)
kwood
Exactement ce que je cherchais.
jasonleonhard
Cela a fonctionné pour moi Merci!
Ishan Tomar
27

Le plugin officiel vim pour VS Code indique comment le configurer sur macOS

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
defaults delete -g ApplePressAndHoldEnabled  # If necessary, reset global default
Moyuan Huang
la source
4
defaults delete -g ApplePressAndHoldEnabledétait ce que je manquais. Il conserve toujours le comportement par défaut pour les autres applications. 👍
Steven Lu
8

La réponse de Steve ci-dessus n'a pas vraiment fonctionné pour moi à cause des paramètres globaux. Cela m'a également laissé curieux de savoir où trouver le com.microsoft.VScodenom de domaine d'une application. Voici ce qui a fonctionné pour moi et une formulation généralisée:

Pour activer les répétitions pour une application spécifique, comme VSCode, assurez-vous d'abord qu'il n'y a pas de paramètre global de remplacement.

defaults delete -g ApplePressAndHoldEnabled

Ensuite, activez le paramètre pour l'application spécifique, vous pouvez trouver le nom de domaine d'une application en le trouvant dans le Info.plistdocument sous le dossier Contenu où il est installé.

Exemple

<key>CFBundleIdentifier</key>
<string>com.microsoft.VSCode</string>

Ensuite, définissez le paramètre sur la ligne de commande.

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false

Vous pouvez également utiliser ce modèle pour d'autres paramètres spécifiques à l'application. Assurez-vous simplement que vos paramètres ne sont pas écrasés globalement.

Pour plus d'informations sur le defaultstype defaults help. Une dernière remarque, vous n'avez pas besoin d'exécuter cela comme sudosi votre utilisateur était déjà un administrateur.

Babakness
la source
make sure that there isn't an overriding global setting C'est ce qui a fait ça pour moi. Merci
Kevin Friedheim
6

Si vous êtes sur un Mac et utilisez VSCodium:

defaults write com.visualstudio.code.oss ApplePressAndHoldEnabled -bool false

Le ciblage des autres réponses com.microsoft.VSCodene fonctionne pas car vous n'exécutez pas MS VSCode. La commande default writegénère / met à jour les fichiers en plus ~/Library/Preferences/de .plist, vous devez cibler le bon fichier.


Mes logiciels et versions:
macOS Mojave 10.14.6
VSCodium 1.41.1
- Vim (par vscodevim) 1.12.4 avec neovim activé
Neovim 0.4.3 Vim 8.1.2250

Kyle Chesney
la source
0
Bien que je réinitialise avec les commandes mentionnées ci-dessus et même après le redémarrage, une fois que j'ouvre
VSCode ils sont réinitialisés, donc j'avais un script 'code' pour les réinitialiser
chaque fois que j'ouvre l'éditeur VSCode.

 $ cat code
VSCODE_CWD = "$ PWD" ouvrir -n -b "com.microsoft.VSCode" --args $ * &
les valeurs par défaut écrivent com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
par défaut delete -g ApplePressAndHoldEnabled
satyavvd
la source
0

Pour ceux d'entre vous sur VS Code Insiders, remplacez simplement l'identifiant du bundle par:

defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false
Volonté
la source