Como faço para manter uma tecla pressionada e repeti-la no VSCode?

125

Eu uso o plugin vim e normalmente rolar no vim apenas segurando j. No VSCode, segurar j apenas executa um único comando j, não importa por quanto tempo ele seja mantido.

Mesmo no vscode vanilla isso também não funciona - problemático se você está tentando digitar blocos longos de ################################## Para separadores de comentários. Alguma ideia de como habilitar essa funcionalidade?

jjcm
fonte

Respostas:

304

Para desativar o Apple pressione e segure apenas para VSCode, execute este comando em um terminal:

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false

Em seguida, reinicie o VSCode.

Para reativar, execute este comando em um terminal:

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool true
Steve Burns
fonte
5
Funciona perfeitamente
texasbruce
2
aprecie a versão "não afetando as coisas globalmente" que você forneceu.
jrrs
2
isso não funciona para mim VSCode versão 1.31.1 (1.31.1), macOS 10.14.2.
Sunny Patel
Isso estava me deixando louco. Sua solução funcionou perfeitamente. Obrigado por compartilhar isso.
muammar
Se você estiver usando a versão VSCode Insiders, você deve usar:defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false
khuynh
40

Você está no OSX, correto? Nesse caso, o problema pode ser "Pressione e segure" da Apple, onde você pode selecionar caracteres alternativos em pressionamentos longos.

Você pode desabilitar este "recurso" com um comando defaults no terminal:

defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false

Você deve reiniciar o VSCode depois.

Para reativar o comportamento anterior:

defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool true
Kwood
fonte
1
Isso funcionou para mim. A funcionalidade estava funcionando bem para mim no Atom, mas não no vscode. Alguma razão para que funcione em um e não no outro?
Matt
Você pode desativá-lo por aplicativo também, é possível que o Atom envie isso como padrão (por meio de defaults write com.github.atom ApplePressAndHoldEnabled -bool falseou qualquer que seja o ID de domínio correto)
kwood
Exatamente o que eu estava procurando.
jasonleonhard
Isso funcionou para mim, obrigado!
Ishan Tomar
27

O plugin oficial do vim para o VS Code menciona como configurá-lo no macOS

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
defaults delete -g ApplePressAndHoldEnabled  # If necessary, reset global default
Moyuan Huang
fonte
4
defaults delete -g ApplePressAndHoldEnabledera o que eu estava perdendo. Ele ainda mantém o comportamento padrão para os outros aplicativos. 👍
Steven Lu
8

A resposta de Steve acima não funcionou muito bem para mim por causa das configurações globais. Também me deixou curioso sobre onde encontrar o com.microsoft.VScodenome de domínio de um aplicativo. Aqui está o que funcionou para mim e uma formulação generalizada:

Para habilitar repetições para um aplicativo específico, como VSCode, primeiro certifique-se de que não haja uma configuração global de substituição.

defaults delete -g ApplePressAndHoldEnabled

Em seguida, habilite a configuração para o aplicativo específico; você pode encontrar o nome de domínio de um aplicativo no Info.plistdocumento na pasta Conteúdo onde está instalado.

Exemplo

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

Em seguida, defina a configuração na linha de comando.

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false

Você também pode usar esse padrão em outras configurações específicas do aplicativo. Apenas certifique-se de que suas configurações não sejam substituídas globalmente.

Para obter mais informações sobre o defaultstipo defaults help. Mais uma observação, você não precisa executar isso como sudose seu usuário já fosse um administrador.

Babakness
fonte
make sure that there isn't an overriding global setting Isso é o que fez isso por mim. Obrigado
Kevin Friedheim
6

Se você estiver em um Mac e usando VSCodium:

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

O direcionamento de outras respostas com.microsoft.VSCodenão funciona porque você não está executando o MS VSCode. O comando default writegera / atualiza arquivos em ~/Library/Preferences/anexo .plist, você deve direcionar o arquivo correto.


Meu software e versões:
macOS Mojave 10.14.6
VSCodium 1.41.1
- Vim (por vscodevim) 1.12.4 com neovim habilitado
Neovim 0.4.3 Vim 8.1.2250

Kyle Chesney
fonte
0
Embora eu reinicie com os comandos mencionados acima e mesmo após a reinicialização, uma vez que eu abro
VSCode eles estão sendo redefinidos, então eu tinha um script de 'código' para defini-los de volta
toda vez que abro o editor VSCode.

 código $ cat
VSCODE_CWD = "$ PWD" open -n -b "com.microsoft.VSCode" --args $ * &
defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
defaults delete -g ApplePressAndHoldEnabled
Satyavvd
fonte
0

Para aqueles de vocês no VS Code Insiders, basta alterar o identificador do pacote para:

defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false
Vai
fonte