Wie kann man verhindern, dass macOS beim Verschieben einer Zeile nach unten in Visual Studio Code einen Klingelton erzeugt?

Wie kann man verhindern, dass macOS beim Verschieben einer Zeile nach unten in Visual Studio Code einen Klingelton erzeugt?

Ich verwende macOS Mojave (10.14.2) und VSCode (1.31.1).

Mein Problem besteht darin, dass jedes Mal, wenn ich den Befehl „Zeile nach unten verschieben“ mit Control+ Command+ verwende Down arrow, ein Klingelton ertönt, der auf einen Fehler hinweist. Wenn ich jedoch den Befehl „Zeile nach oben verschieben“ mit Control+ Command+ verwende Up arrow, ertönt kein Fehlerton.

Das ist schon so, seit ich denken kann. Ich habe sogar die Tastenkombinationen überprüft, um sicherzustellen, dass nichts anderes dieser Tastenkombination zugeordnet ist, aber ich konnte keine anderen Befehle finden, die derselben Tastenkombination zugeordnet sind. Das Seltsame ist, dass kein Fehler auftritt, wenn ich im Menü auf den Befehl klicke. Ich habe das Gefühl, dass dies auf etwas hindeutet, aber ich kann nicht herausfinden, was die Ursache dafür ist.

BEARBEITEN: Habe gerade festgestellt, dass dies ein offenes Problem ist und der Befehl Lärm machtweil es in Electron blockiert ist.

Antwort1

Dies scheint ein Problem mit Chromium zu sein (wird von Electron verwendet, wird von VSCode verwendet). Hier gibt es einen Workaround:https://github.com/electron/electron/issues/2617#issuecomment-571447707 Der Einfachheit halber kopiere ich den Kern der Aussage hier:

Sie können systemglobale Tastenkombinationen für die Tastenkombinationen ^⌘←, ^⌘↓ und ^⌘→ einrichten, die keiner Operation („noop“) zugeordnet sind. Indem Sie diese einfach auf Betriebssystemebene als gültige Tastenanschläge deklarieren, wird der Systemton eliminiert, der auftritt, selbst wenn eine Chromium-App den Tastenanschlag akzeptiert und verarbeitet.

Um dies zu erreichen, müssen Sie ein ~/Library/KeyBindings/DefaultKeyBinding.dict erstellen. Beachten Sie, dass Sie wahrscheinlich auch das Verzeichnis erstellen müssen und dass der Verzeichnisname Plural (Bindings) ist, der Dateiname jedoch Singular (Binding). Dies sollte sich in Ihrem Benutzerbibliotheksordner befinden, nicht im Ordner /Library oder /System/Library.

Die Datei sollte eine Textdatei mit folgendem Inhalt sein:

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

^ bedeutet Strg, @ bedeutet Befehl und \UF701, \UF702 und \UF703 sind die Codes für die drei Pfeiltasten. Hier gibt es eine gute Gist-Referenz für die Syntax dieser Datei: https://gist.github.com/trusktr/1e5e516df4e8032cbc3dIch habe eine Kopie meiner Datei angehängt, falls das für die Leute einfacher ist.

Außerdem: Vergessen Sie nicht, VSCode nach dem Hinzufügen dieser Datei neu zu starten! Sie müssen neu starten, damit die Änderungen wirksam werden.

Antwort2

Basierend auf den bereits bereitgestellten Lösungen musste ich einige Änderungen vornehmen, damit es auf Sonoma 14.4+ funktioniert

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

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

:Im Grunde musste ich am Ende das hinzufügen noopund die Reihenfolge für Ctrl+ Option+ Cmd+ DownArrow umkehren.

verwandte Informationen