【问题标题】:How do I press and hold a key and have it repeat in VSCode?如何按住一个键并让它在 VSCode 中重复?
【发布时间】:2017-02-19 16:55:16
【问题描述】:

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

即使在原版 vscode 中,这也不起作用 - 如果您尝试键入长块 ######################## ## 用于注释分隔符。知道如何启用此功能吗?

【问题讨论】:

  • 按照官方插件文档中提到的步骤进行操作。 github.com/VSCodeVim/Vim#mac。我也重新启动了一个 mac,它运行良好。

标签: visual-studio-code


【解决方案1】:

您在 OSX 上,对吗?如果是这样,问题可能是 Apple 的“Press&Hold”,您可以在其中选择长按时的替代字符。

您可以在终端中使用默认命令禁用此“功能”:

defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false

之后你必须重新启动 VSCode。

要重新启用之前的行为:

defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool true

【讨论】:

  • 这对我有用。该功能在 Atom 中对我来说运行良好,但在 vscode 中却不行。为什么它应该在一个而不是另一个工作?
  • 您也可以在每个应用程序的基础上禁用它,Atom 可能将其作为默认设置(通过defaults write com.github.atom ApplePressAndHoldEnabled -bool false 或任何正确的域 id)
【解决方案2】:

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

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false

然后重启 VSCode。

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

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool true

【讨论】:

  • 完美运行
  • 欣赏您提供的“不影响全局”版本。
  • 这对我不起作用 VSCode 版本 1.31.1 (1.31.1),macOS 10.14.2。
  • 如果你使用的是 VSCode Insiders 版本,只是想在这里插话,你应该使用:defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false
  • 一个有用的变体是提供-app 标志而不是域,因为应用名称比域更容易找到,特别是对于非典型的 VSCode 构建。我使用 VSCodium 构建,所以我能够通过 defaults write -app VSCodium ApplePressAndHoldEnabled -bool false 获得所需的效果
【解决方案3】:

由于全局设置,上述史蒂夫的答案对我来说不太适用。这也让我很好奇在哪里可以找到应用程序的com.microsoft.VScode 域名。以下是对我有用的通用公式:

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

defaults delete -g ApplePressAndHoldEnabled

然后启用特定应用的设置,您可以在安装应用的Contents文件夹下的Info.plist文档中找到应用的域名。

例子

<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 这就是为我做的。谢谢
【解决方案4】:

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

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
defaults delete -g ApplePressAndHoldEnabled  # If necessary, reset global default

【讨论】:

  • defaults delete -g ApplePressAndHoldEnabled 是我所缺少的。它仍然保留其他应用程序的默认行为。 ?
【解决方案5】:

如果您在 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
- 启用了 neovim 的 Vim(由 vscodevim 提供)1.12.4
Neovim 0.4.3 Vim 8.1.2250

【讨论】:

    【解决方案6】:
    虽然我使用上述命令重置,即使在重新启动后,一旦我打开
    VSCode 他们正在重置,所以我有“代码”脚本来设置它们
    每次我打开 VSCode 编辑器。
    
     $猫代码
    VSCODE_CWD="$PWD" open -n -b "com.microsoft.VSCode" --args $* &
    默认写入 com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
    默认删除 -g ApplePressAndHoldEnabled
    

    【讨论】:

      【解决方案7】:

      对于那些使用 VS Code Insiders 的人,只需将 Bundle 标识符更改为:

      defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false
      

      【讨论】:

      • 这适用于 M1 MacBook Air with Insider。谢谢!
      【解决方案8】:

      史蒂夫的最佳答案不适用于我的 mac 'defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false',但以下对我有用:

      sudo defaults write -g ApplePressAndHoldEnabled -bool false
      

      参考:https://github.com/VSCodeVim/Vim/issues/345

      【讨论】:

        【解决方案9】:

        以上方法都不适用于我的新笔记本电脑,我不得不使用:

        defaults write -g ApplePressAndHoldEnabled -bool false
        

        【讨论】:

          【解决方案10】:

          苹果 要启用键重复,请在终端中执行以下命令并重新启动 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
          

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

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

          【讨论】:

            猜你喜欢
            • 2023-03-14
            • 2017-04-30
            • 1970-01-01
            • 2014-05-03
            • 1970-01-01
            • 1970-01-01
            • 2020-06-14
            • 2012-09-23
            • 2021-12-04
            相关资源
            最近更新 更多