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


126

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

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

Ответы:


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

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

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

0

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

defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.