Как мне нажать и удерживать клавишу и заставить ее повторяться в VSCode?

126

Я использую плагин vim и обычно прокручиваю в vim, просто удерживая j. В VSCode удерживание j выполняет только одну команду j, независимо от того, как долго она удерживается.

Даже в vanilla vscode это тоже не работает - проблематично, если вы пытаетесь ввести длинные блоки ########################## для разделители комментариев. Есть идеи, как включить эту функцию?

jjcm
источник

Ответы:

307

Чтобы отключить Apple, нажмите и удерживайте только для VSCode, запустите эту команду в терминале:

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false

Затем перезапустите VSCode.

Чтобы снова включить, запустите эту команду в терминале:

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool true
Стив Бернс
источник
5
Работает отлично
texasbruce
2
цените предоставленную вами версию "не влияет на вещи глобально".
jrrs
2
это не работает для меня VSCode Version 1.31.1 (1.31.1), macOS 10.14.2.
Sunny Patel
Это сводило меня с ума. Ваше решение сработало отлично. Спасибо, что поделились этим.
Муаммар
1
Полезный вариант - указать -appфлаг вместо домена, поскольку имя приложения найти легче, чем домен, особенно для нетипичных сборок VSCode. Я использую сборку VSCodium, поэтому я смог добиться желаемого эффекта сdefaults write -app VSCodium ApplePressAndHoldEnabled -bool false
Уоррен Янг
40

Вы используете OSX, верно? Если это так, проблема может заключаться в Apple «Нажать и удерживать», где вы можете выбирать альтернативные символы при долгом нажатии.

Вы можете отключить эту «функцию» с помощью команды по умолчанию в терминале:

defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false

После этого вам необходимо перезапустить VSCode.

Чтобы снова включить предыдущее поведение:

defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool true
Kwood
источник
1
Это сработало для меня. В Atom у меня все работало нормально, но не в vscode. По какой причине он должен работать в одном, а не в другом?
Мэтт
1
Вы также можете отключить его для каждого приложения, возможно, что Atom defaults write com.github.atom ApplePressAndHoldEnabled -bool false
kwood
Именно то, что я искал.
jasonleonhard
Это сработало для меня Спасибо!
Ишан Томар,
27

Официальный ВИМ-плагин для VS кодекс упоминает , как установить его на MacOS

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
defaults delete -g ApplePressAndHoldEnabled  # If necessary, reset global default
Moyuan Huang
источник
4
defaults delete -g ApplePressAndHoldEnabledбыло то, чего мне не хватало. Он по-прежнему сохраняет поведение по умолчанию для других приложений. 👍
Стивен Лу
8

Ответ Стива выше не совсем сработал для меня из-за глобальных настроек. Это также оставило меня любопытным, где найтиcom.microsoft.VScode доменное имя для приложения. Вот что у меня сработало и обобщенная формулировка:

Чтобы включить повторы для определенного приложения, такого как VSCode, сначала убедитесь, что нет переопределяющего глобального параметра.

defaults delete -g ApplePressAndHoldEnabled

Затем включите настройку для конкретного приложения, вы можете найти доменное имя приложения, найдя его в Info.plist документе в папке Contents, где оно установлено.

пример

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

Затем установите настройку в командной строке.

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false

Вы можете использовать этот шаблон и для других настроек приложения. Просто убедитесь, что ваши настройки не перезаписываются глобально.

Для получения дополнительной информации о defaultsтипе defaults help. Еще одно замечание: вам не нужно запускать это, как sudoбудто ваш пользователь уже является администратором.

Бабакнес
источник
make sure that there isn't an overriding global setting Вот что сделало это для меня. Спасибо
Кевин
6

Если вы используете Mac и используете VSCodium:

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

Другие ответы с таргетингом com.microsoft.VSCodeне работают, потому что вы не используете MS VSCode. Команда default writeгенерирует / обновляет файлы с ~/Library/Preferences/добавлением .plist, вы должны выбрать правильный файл.


Мое программное обеспечение и версии:
macOS Mojave 10.14.6
VSCodium 1.41.1
- Vim (by vscodevim) 1.12.4 с включенным
neovim Neovim 0.4.3 Vim 8.1.2250

Кайл Чесни
источник
0
Хотя я выполняю сброс с помощью вышеупомянутых команд и даже после перезагрузки, как только я открываю
VSCode они сбрасываются, поэтому у меня был сценарий кода, чтобы вернуть их
каждый раз, когда открываю редактор VSCode.

 код $ cat
VSCODE_CWD = "$ PWD" открыть -n -b "com.microsoft.VSCode" --args $ * &
по умолчанию пишем com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
по умолчанию удалить -g ApplePressAndHoldEnabled
Satyavvd
источник
0

Для тех из вас, кто работает с инсайдерами VS Code, просто измените идентификатор Bundle на:

defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false
Будет
источник