如何按住某个键并在VSCode中重复该键?

jjc*_*jcm 81 visual-studio-code

我使用vim插件,我通常只需按住j就可以在vim中滚动.在VSCode中,j只执行一个j命令,无论它持有多长时间.

即使在vanilla vscode中,这也不起作用 - 如果您尝试键入###########################的长块,则会出现问题.评论分隔符.知道如何启用此功能吗?

小智 197

要禁用Apple仅按住VSCode,请在终端中运行此命令:

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
Run Code Online (Sandbox Code Playgroud)

然后重启VSCode.

要重新启用,请在终端中运行此命令:

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool true
Run Code Online (Sandbox Code Playgroud)

  • 只是想在这里补充一下,如果您使用的是 VSCode Insiders 版本,您应该使用:“defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false” (6认同)
  • 感谢您提供的“不影响全局”版本。 (5认同)
  • 完美的工作 (4认同)
  • 一个有用的变体是提供 `-app` 标志而不是域,因为应用程序名称比域更容易找到,特别是对于 VSCode 的非典型构建。我使用 VSCodium 构建,因此我能够通过“defaults write -app VSCodium ApplePressAndHoldEnabled -bool false”获得所需的效果 (4认同)
  • 这对我 VSCode 版本 1.31.1 (1.31.1)、macOS 10.14.2 不起作用。 (3认同)

kwo*_*ood 34

你在OSX上,对吗?如果是这样,问题可能是Apple的"Press&Hold",您可以在长按上选择其他字符.

您可以在终端中使用defaults命令禁用此"功能":

defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false
Run Code Online (Sandbox Code Playgroud)

之后你必须重新启动VSCode.

要重新启用以前的行为:

defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool true
Run Code Online (Sandbox Code Playgroud)

  • 这对我有用。该功能在 Atom 中运行良好,但在 vscode 中则不然。有什么理由说明它应该在其中一个中起作用而不是在另一个中起作用? (2认同)

Ham*_*oja 17

操作系统:Mac

要启用按键重复,请在终端中执行以下命令并重新启动 VS Code:

$ defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false         # For VS Code
$ defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false # For VS Code Insider
$ defaults write com.visualstudio.code.oss ApplePressAndHoldEnabled -bool false    # For VS Codium
$ defaults delete -g ApplePressAndHoldEnabled                                      # If necessary, reset global default
Run Code Online (Sandbox Code Playgroud)

我们还建议在“系统偏好设置”->“键盘”中增加“按键重复”和“延迟直到重复”设置。

这一切都在我们的自述文件中https://github.com/VSCodeVim/Vim/blob/master/README.md#mac-setup

  • 第一行是唯一对我有用的解决方案。OSX 12.3 和 VS 代码 1.67.2 (2认同)

小智 15

VS Code 的官方vim-plugin提到了如何在macOS上进行设置

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
defaults delete -g ApplePressAndHoldEnabled  # If necessary, reset global default
Run Code Online (Sandbox Code Playgroud)

  • 我缺少的是“ defaults delete -g ApplePressAndHoldEnabled”。它仍然保留其他应用程序的默认行为。 (2认同)

小智 8

如果您使用的是 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 with neovim enabled
Neovim 0.4.3 Vim 8.1.2250


msp*_*ces 8

如果在 Mac 上,您应该参考扩展的 Mac 特定说明: https: //github.com/VSCodeVim/Vim#mac

目前(2022 年 8 月),它说:

要启用按键重复,请在终端中执行以下命令,注销并重新登录,然后重新启动 VS Code:


对于 VS 代码用户:

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false

对于 VS Code Insider 用户:

defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false

对于 VS Codium 用户:

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

对于 VS Codium Exploration 用户:

defaults write com.microsoft.VSCodeExploration ApplePressAndHoldEnabled -bool false

如有必要,重置全局默认值:

defaults delete -g ApplePressAndHoldEnabled


我们还建议在“系统偏好设置”->“键盘”中增加“按键重复”和“延迟直到重复”设置。


Bab*_*ess 5

由于全局设置,上述Steve的答案对我而言不太有效。这也让我对在哪里可以找到com.microsoft.VScode应用程序的域名感到好奇。这是对我有用的方法和广义公式:

要为特定应用(例如VSCode)启用重复功能,请首先确保没有覆盖的全局设置。

defaults delete -g ApplePressAndHoldEnabled

然后启用特定应用程序的设置,您可以通过在Info.plist安装目录的文件夹下找到该应用程序的域名来找到该应用程序的域名。

<key>CFBundleIdentifier</key>
<string>com.microsoft.VSCode</string>
Run Code Online (Sandbox Code Playgroud)

然后在命令行上进行设置。

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false

您也可以使用此模式进行其他应用程序特定的设置。只需确保您的设置不会被全局覆盖即可。

有关defaults类型的更多信息defaults help。还有一点需要注意,您不必像sudo用户已经是管理员一样运行它。

  • `确保没有压倒一切的全局设置` 这就是我所做的。谢谢 (3认同)