¿Cómo mantengo presionada una tecla y hago que se repita en VSCode?

125

Utilizo el complemento vim y normalmente me desplazo en vim con solo presionar j. En VSCode, mantener j solo hace un solo comando j, sin importar cuánto tiempo se mantenga.

Incluso en vainilla vscode esto tampoco funciona - problemático si está intentando escribir bloques largos de ######################## para separadores de comentarios. ¿Alguna idea de cómo habilitar esta funcionalidad?

jjcm
fuente

Respuestas:

306

Para deshabilitar Apple presione y mantenga presionado solo para VSCode, ejecute este comando en una terminal:

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false

Luego reinicie VSCode.

Para volver a habilitar, ejecute este comando en una terminal:

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool true
Steve Burns
fuente
5
Funciona perfectamente
texasbruce
2
Aprecie la versión "que no afecta las cosas a nivel mundial" que proporcionó.
jrrs
2
esto no me funciona VSCode Versión 1.31.1 (1.31.1), macOS 10.14.2.
Sunny Patel
Esto me estaba volviendo loco. Tu solución funcionó a la perfección. Gracias por compartir esto.
muammar
1
Una variación útil es dar la -appbandera en lugar de un dominio, ya que el nombre de la aplicación es más fácil de encontrar que el dominio, particularmente para compilaciones atípicas de VSCode. Yo uso la acumulación VSCodium, así que era capaz de conseguir el efecto deseado condefaults write -app VSCodium ApplePressAndHoldEnabled -bool false
Warren Young
40

Estás en OSX, ¿correcto? Si es así, el problema podría ser "Pulsar y mantener pulsado" de Apple, donde puede seleccionar caracteres alternativos con pulsaciones largas.

Puede desactivar esta "función" con un comando predeterminado en la terminal:

defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false

Tienes que reiniciar VSCode después.

Para volver a habilitar el comportamiento anterior:

defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool true
kwood
fuente
1
Esto funcionó para mí. La funcionalidad me funcionaba bien en Atom, pero no en vscode. ¿Alguna razón por la que debería funcionar en uno y no en el otro?
Matt
También puede deshabilitarlo por aplicación, es posible que Atom lo envíe como predeterminado (a través de defaults write com.github.atom ApplePressAndHoldEnabled -bool falseo cualquiera que sea la identificación de dominio correcta)
kwood
Exactamente lo que estaba buscando.
Jasonleonhard
Esto funcionó para mí ¡Gracias!
Ishan Tomar
27

El complemento vim oficial para VS Code menciona cómo configurarlo en macOS

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
defaults delete -g ApplePressAndHoldEnabled  # If necessary, reset global default
Moyuan Huang
fuente
4
defaults delete -g ApplePressAndHoldEnabledera lo que me faltaba. Todavía conserva el comportamiento predeterminado para las otras aplicaciones. 👍
Steven Lu
8

La respuesta de Steve anterior no me funcionó del todo debido a la configuración global. También me dejó curioso acerca de dónde encontrar el com.microsoft.VScodenombre de dominio para una aplicación. Esto es lo que funcionó para mí y una formulación generalizada:

Para habilitar las repeticiones para una aplicación específica, como VSCode, primero asegúrese de que no haya una configuración global primordial.

defaults delete -g ApplePressAndHoldEnabled

Luego, habilite la configuración para la aplicación específica, puede encontrar el nombre de dominio de una aplicación en el Info.plistdocumento en la carpeta Contenido donde está instalada.

Ejemplo

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

Luego establezca la configuración en la línea de comando.

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false

También puede usar este patrón en otras configuraciones específicas de la aplicación. Solo asegúrese de que su configuración no se sobrescriba globalmente.

Para obtener más información sobre el defaultstipo defaults help. Una nota más, no necesita ejecutar esto como sudosi su usuario ya fuera un administrador.

Babakness
fuente
make sure that there isn't an overriding global setting Eso es lo que hizo por mí. Gracias
Kevin Friedheim
6

Si está en una Mac y usa VSCodium:

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

La orientación de otras respuestas com.microsoft.VSCodeno funciona porque no está ejecutando MS VSCode. El comando default writegenera / actualiza archivos adjuntos ~/Library/Preferences/con .plist, debe apuntar al archivo correcto.


Mi software y versiones:
macOS Mojave 10.14.6
VSCodium 1.41.1
- Vim (por vscodevim) 1.12.4 con neovim habilitado
Neovim 0.4.3 Vim 8.1.2250

Kyle Chesney
fuente
0
Aunque reinicio con los comandos mencionados anteriormente e incluso después de reiniciar, una vez que abro
VSCode se están restableciendo, así que tenía un script de 'código' para restablecerlos
cada vez que abro el editor VSCode.

 $ cat code
VSCODE_CWD = "$ PWD" abierto -n -b "com.microsoft.VSCode" --args $ * &
los valores predeterminados escriben com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
valores predeterminados eliminar -g ApplePressAndHoldEnabled
satyavvd
fuente
0

Para aquellos de ustedes en VS Code Insiders, simplemente cambie el identificador del paquete a:

defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false
Será
fuente