Как отключить звуковой сигнал колокольчика в macOS при перемещении вниз по строке в Visual Studio Code?

Как отключить звуковой сигнал колокольчика в macOS при перемещении вниз по строке в Visual Studio Code?

Я использую macOS Mojave (10.14.2) и VSCode (1.31.1).

Моя проблема в том, что каждый раз, когда я использую команду "Move Line Down" с помощью Control+ Command+ Down arrow, я получаю звук колокольчика, который означает какую-то ошибку. Однако, когда я использую команду "Move Line Up" с помощью Control+ Command+ Up 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 — это коды трех клавиш со стрелками. Вот хорошая справочная информация Gist по синтаксису этого файла: 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:";
}

По сути мне нужно было добавить :в конец noopи поменять порядок для Ctrl+ Option+ Cmd+ DownArrow

Связанный контент