如何阻止 macOS 在 Visual Studio Code 中向下移动行时发出铃声?

如何阻止 macOS 在 Visual Studio Code 中向下移动行时发出铃声?

我正在使用 macOS Mojave(10.14.2)和 VSCode(1.31.1)。

我的问题是,每次我使用 ++ 执行“向下移动行”命令时Control,都会听到表示某种错误的铃声。但是,当我使用 ++ 执行“向上移动行”命令时Command,没有错误声音。Down arrowControlCommandUp arrow

我记得这种情况一直都是这样。我甚至检查了快捷方式以确保没有其他命令映射到此快捷方式,但我找不到任何其他命令映射到同一快捷方式。奇怪的是,当我从菜单中单击命令时,没有错误。我觉得这指向了一些东西,但我似乎无法弄清楚是什么原因造成的。

编辑:刚刚意识到这是一个悬而未决的问题,并且命令正在发出噪音因为它在 Electron 中被阻止

答案1

这似乎是 Chromium (Electron 使用,VSCode 使用) 的一个问题。这里有一个解决方法:https://github.com/electron/electron/issues/2617#issuecomment-571447707 为了方便起见,我将其要点复制在这里:

您可以为 ^⌘←、^⌘↓ 和 ^⌘→ 组合键建立系统全局键绑定,这些键绑定被映射到无操作(“noop”)。只需在操作系统级别将这些键声明为有效按键,即可消除即使 Chromium 应用接受并处理按键时发生的系统蜂鸣声。

为了建立这个,您需要创建一个 ~/Library/KeyBindings/DefaultKeyBinding.dict – 请注意,您可能还需要创建目录,并且目录名称是复数 (Bindings),但文件名是单数 (Binding)。这应该在您的用户 Library 文件夹中,而不是 /Library 文件夹或 /System/Library 文件夹中。

该文件应为具有以下内容的文本文件:

{
  "^@\UF701" = "noop";
  "^@\UF702" = "noop";
  "^@\UF703" = "noop";
}

^ 表示 Ctrl,@ 表示 Command,\UF701、\UF702 和 \UF703 是三个箭头键的代码。这里有一个关于此文件语法的很好的参考要点: https://gist.github.com/trusktr/1e5e516df4e8032cbc3d我已附加我的文件的副本,以便于大家更方便查阅。

另外:添加该文件后,别忘了重启 VSCode!您必须重启才能使更改生效。

答案2

根据已经提供的解决方案,我需要做一些更改才能使其在 Sonoma 14.4+ 上运行

https://github.com/electron/electron/issues/2617#issuecomment-1988768016

{
    "@^\UF701" = "noop:";
    "@^\UF702" = "noop:";
    "@^\UF703" = "noop:";
    "@~^\UF701" = "noop:";
}

基本上我需要:在末尾添加并反转++ DownArrow的noop顺序CtrlOptionCmd

相关内容