Come si tiene premuto un tasto e lo si ripete in VSCode?


125

Uso il plugin vim e in genere scorro in vim semplicemente tenendo premuto j. In VSCode, tenendo premuto j si esegue solo un singolo comando j, indipendentemente da quanto tempo viene tenuto premuto.

Anche in vanilla vscode anche questo non funziona - problematico se stai cercando di digitare blocchi lunghi di ########################## per separatori di commenti. Qualche idea su come abilitare questa funzionalità?

Risposte:


306

Per disabilitare l'Apple, tieni premuto solo per VSCode, esegui questo comando in un terminale:

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false

Quindi riavvia VSCode.

Per riattivare, eseguire questo comando in un terminale:

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool true

5
Funziona perfettamente
texasbruce

2
apprezza la versione "non influisce sulle cose a livello globale" che hai fornito.
jrrs

2
questo non funziona per me VSCode versione 1.31.1 (1.31.1), macOS 10.14.2.
Sunny Patel

Questo mi stava facendo impazzire. La tua soluzione ha funzionato perfettamente. Grazie per aver condiviso questo.
muammar

1
Una variante utile è dare il -appflag invece di un dominio, poiché il nome dell'app è più facile da trovare rispetto al dominio, in particolare per le build atipiche di VSCode. Uso la build VSCodium, quindi sono stato in grado di ottenere l'effetto desiderato condefaults write -app VSCodium ApplePressAndHoldEnabled -bool false
Warren Young,

40

Sei su OSX, giusto? In tal caso, il problema potrebbe essere "Premi e mantieni" di Apple, in cui puoi selezionare caratteri alternativi premendo a lungo.

Puoi disabilitare questa "funzionalità" con un comando defaults nel terminale:

defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false

Devi riavviare VSCode in seguito.

Per riattivare il comportamento precedente:

defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool true

1
Questo ha funzionato per me. La funzionalità funzionava bene per me in Atom, ma non in vscode. Qualche motivo per cui dovrebbe funzionare in uno e non nell'altro?
Matt

Puoi disabilitarlo anche in base all'applicazione, è possibile che Atom lo defaults write com.github.atom ApplePressAndHoldEnabled -bool false
spedisca

Esattamente quello che stavo cercando.
jasonleonhard

Questo ha funzionato per me Grazie!
Ishan Tomar

27

Il plug-in vim ufficiale per VS Code menziona come configurarlo su macOS

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
defaults delete -g ApplePressAndHoldEnabled  # If necessary, reset global default

4
defaults delete -g ApplePressAndHoldEnabledera quello che mi mancava. Mantiene ancora il comportamento predefinito per le altre app. 👍
Steven Lu

8

La risposta di Steve sopra non ha funzionato per me a causa delle impostazioni globali. Mi ha anche lasciato curioso di sapere dove trovare il com.microsoft.VScodenome di dominio per un'app. Ecco cosa ha funzionato per me e una formulazione generalizzata:

Per abilitare le ripetizioni per un'app specifica, come VSCode, assicurati innanzitutto che non sia presente un'impostazione globale prioritaria.

defaults delete -g ApplePressAndHoldEnabled

Quindi abilita l'impostazione per l'app specifica, puoi trovare il nome di dominio di un'app trovandolo nel Info.plistdocumento sotto la cartella Contenuti in cui è installata.

Esempio

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

Quindi impostare l'impostazione sulla riga di comando.

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false

Puoi utilizzare questo modello anche per altre impostazioni specifiche dell'app. Assicurati solo che le tue impostazioni non vengano sovrascritte a livello globale.

Per ulteriori informazioni sul defaultstipo defaults help. Un'altra nota, non è necessario eseguirlo come sudose il tuo utente fosse già un amministratore.


make sure that there isn't an overriding global setting Questo è quello che ha fatto per me. Grazie
Kevin Friedheim

6

Se utilizzi un Mac e utilizzi VSCodium:

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

Altre risposte mirate com.microsoft.VSCodenon funzionano perché non stai utilizzando MS VSCode. Il comando default writegenera / aggiorna i file in ~/Library/Preferences/allegato con .plist, devi indirizzare il file giusto.


Il mio software e le mie versioni:
macOS Mojave 10.14.6
VSCodium 1.41.1
- Vim (di vscodevim) 1.12.4 con neovim abilitato
Neovim 0.4.3 Vim 8.1.2250


0
Anche se ho resettato con i comandi sopra menzionati e anche dopo il riavvio, una volta aperto
VSCode vengono ripristinati, quindi ho avuto uno script di "codice" per ripristinarli
ogni volta che apro l'editor di VSCode.

 $ cat code
VSCODE_CWD = "$ PWD" open -n -b "com.microsoft.VSCode" --args $ * &
i valori predefiniti scrivono com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
i valori predefiniti cancellano -g ApplePressAndHoldEnabled

0

Per quelli di voi su VS Code Insider, basta cambiare l'identificatore del bundle in:

defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.