Wie drücke und halte ich eine Taste und lasse sie im VSCode wiederholen?

121

Ich benutze das vim-Plugin und scrolle normalerweise in vim, indem ich nur j gedrückt halte. In VSCode führt das Halten von j nur einen einzelnen j-Befehl aus, unabhängig davon, wie lange es gehalten wird.

Selbst in Vanilla Vscode funktioniert dies nicht - problematisch, wenn Sie versuchen, lange Blöcke von #################################### Kommentartrennzeichen. Haben Sie eine Idee, wie Sie diese Funktionalität aktivieren können?

jjcm
quelle

Antworten:

299

Führen Sie diesen Befehl in einem Terminal aus, um das Drücken und Halten von Apple nur für VSCode zu deaktivieren:

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false

Starten Sie dann VSCode neu.

Führen Sie diesen Befehl zum erneuten Aktivieren in einem Terminal aus:

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool true
Steve Burns
quelle
4
Funktioniert perfekt
Texasbruce
2
schätzen die von Ihnen bereitgestellte Version "keine globalen Auswirkungen".
jrrs
2
Dies funktioniert bei mir nicht VSCode Version 1.31.1 (1.31.1), macOS 10.14.2.
Sunny Patel
Das hat mich verrückt gemacht. Ihre Lösung hat perfekt funktioniert. Vielen Dank für das Teilen.
Muammar
Wenn Sie die VSCode Insiders-Version verwenden möchten, sollten Sie nur defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false
Folgendes
38

Sie sind unter OSX, richtig? In diesem Fall handelt es sich möglicherweise um Apples "Press & Hold", bei dem Sie bei langem Drücken alternative Zeichen auswählen können.

Sie können diese "Funktion" mit einem Standardbefehl im Terminal deaktivieren:

defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false

Sie müssen VSCode anschließend neu starten.

So aktivieren Sie das vorherige Verhalten erneut:

defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool true
Kwood
quelle
1
Das hat bei mir funktioniert. Die Funktionalität funktionierte für mich in Atom einwandfrei, aber nicht in vscode. Gibt es einen Grund, warum es in dem einen und nicht in dem anderen funktionieren sollte?
Matt
Sie können es auch pro Anwendung deaktivieren. Es ist möglich, dass Atom dies standardmäßig defaults write com.github.atom ApplePressAndHoldEnabled -bool false
versendet
Genau das, wonach ich gesucht habe.
Jasonleonhard
27

Das offizielle vim-Plugin für VS Code erwähnt, wie es unter macOS eingerichtet wird

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
defaults delete -g ApplePressAndHoldEnabled  # If necessary, reset global default
Moyuan Huang
quelle
4
defaults delete -g ApplePressAndHoldEnabledwar was mir fehlte. Das Standardverhalten für die anderen Apps bleibt erhalten. 👍
Steven Lu
8

Die Antwort von Steve oben hat bei mir aufgrund der globalen Einstellungen nicht ganz funktioniert. Es hat mich auch neugierig gemacht, wo ich den com.microsoft.VScodeDomainnamen für eine App finden kann. Folgendes hat für mich funktioniert und eine verallgemeinerte Formulierung:

Um Wiederholungen für eine bestimmte App wie VSCode zu aktivieren, stellen Sie zunächst sicher, dass keine übergeordnete globale Einstellung vorhanden ist.

defaults delete -g ApplePressAndHoldEnabled

Aktivieren Sie dann die Einstellung für die jeweilige App. Sie finden den Domänennamen einer App, indem Sie ihn im Info.plistDokument unter dem Ordner "Inhalt" finden, in dem sie installiert ist.

Beispiel

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

Stellen Sie dann die Einstellung in der Befehlszeile ein.

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false

Sie können dieses Muster auch für andere app-spezifische Einstellungen verwenden. Stellen Sie einfach sicher, dass Ihre Einstellungen nicht global überschrieben werden.

Weitere Informationen zum defaultsTyp defaults help. Noch ein Hinweis: Sie müssen dies nicht so ausführen, als sudoob Ihr Benutzer bereits Administrator ist.

Babakness
quelle
make sure that there isn't an overriding global setting Das hat es für mich getan. Danke
Kevin Friedheim
6

Wenn Sie auf einem Mac arbeiten und VSCodium verwenden:

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

Andere Antworten zielen com.microsoft.VSCodenicht ab, da Sie MS VSCode nicht ausführen. Der Befehl default writegeneriert / aktualisiert Dateien in ~/Library/Preferences/angehängten Dateien .plist. Sie müssen die richtige Datei auswählen.


Meine Software und Versionen:
macOS Mojave 10.14.6
VSCodium 1.41.1
- Vim (von vscodevim) 1.12.4 mit aktiviertem
Neovim Neovim 0.4.3 Vim 8.1.2250

Kyle Chesney
quelle
0
Obwohl ich mit den oben genannten Befehlen und auch nach dem Neustart zurückgesetzt habe, sobald ich öffne
VSCode werden sie zurückgesetzt, daher hatte ich ein 'Code'-Skript, um sie zurückzusetzen
Jedes Mal, wenn ich den VSCode-Editor öffne.

 $ cat code
VSCODE_CWD = "$ PWD" open -n -b "com.microsoft.VSCode" --args $ * &
Standardmäßig schreibe com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
Standardeinstellungen löschen -g ApplePressAndHoldEnabled
satyavvd
quelle
0

Wenn Sie VS Code Insider kennen, ändern Sie einfach die Bundle-ID in:

defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false
Wille
quelle