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?

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

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

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

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.


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


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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.