Xcode: Mehrere Tastenkombinationen pro Funktion

12

In Xcode möchte ich die Möglichkeit haben, mehrere Tastenzuordnungen für dieselbe Funktion einzurichten. Zum Beispiel möchte ich, dass die step overFunktion sowohl F6und als auch zugeordnet wird F16. Ich sehe keine Möglichkeit, dies von Xcode aus zu tun.

Kennt jemand einen Weg, dies zu tun? (Ich benutze Xcode 4.2.1)

joseph.hainline
quelle

Antworten:

4

Ich habe ein wenig über Ihre Frage recherchiert. Ursprünglich scheint es nicht möglich zu sein, mehrere Verknüpfungen für dieselbe Funktion anzugeben. Ich habe versucht, die ~/Library/Prefences/com.apple.dt.Xcode.plistDatei zu öffnen und das NSUserKeyEquivalentsHinzufügen eines doppelten Elements für manuell zu bearbeiten Step Over, aber beim Start von Xcode wurde das doppelte Element automatisch gelöscht (dies ist seitdem sinnvoll) das umhüllende Element heißt <dict>).

Ich habe einen groben Weg gefunden, um die zweite Verknüpfung festzulegen, die von diesem Artikel inspiriert wurde . Anweisungen gelten für OS X 10.8:

  1. in System Preferences, unter Accessibilityermöglichen Enable access for assistive devices;
  2. Downloaden und installieren Sie Quicksilver , einen kostenlosen Launcher für OS X;
  3. Speichern Sie das folgende AppleScript im Ordner "Dokumente" (z. B. mit Namen StepOver.scpt). Kopieren Sie auch die ¬Zeichen. Dieses Skript aktiviert Xcode und wählt die Step OverFunktion aus.

    tell application "Xcode"
        activate
    end tell
    
    tell application "System Events" ¬
    to tell process "Xcode" ¬
    to click menu item "Step Over" ¬
    of menu "Debug" of menu item "Debug" ¬
    of menu "Product" of menu bar item "Product" ¬
    of menu bar 1
    
  4. Starten Sie QuickSilver und navigieren Sie zu Einstellungen -> Trigger -> Benutzerdefinierte Trigger

  5. Erstellen Sie einen neuen Auslöser, in dem Sie das StepOver.scptSkript mit der gewünschten Tastenkombination öffnen (in dem Screenshot, den ich verwendet habe F10). Auf der Registerkarte Bereich können Sie festlegen, dass der Trigger nur in Xcode funktioniert. Trigger Beispiel
  6. An diesem Punkt sollte die zusätzliche Verknüpfung funktionieren. Ich habe eine einfache C ++ - Konsolenanwendung in Xcode erstellt und ich könnte schrittweise F6(als "Standard" -Verknüpfung) und F10(als mit QuickSilver konfigurierte zusätzliche Verknüpfung) verwenden.

Als letzte Anmerkung können Sie auch Software zum Erstellen von Makros wie Keyboard Maestro testen - es ist kommerziell und ich habe es nicht ausprobiert.

edymtt
quelle
1
tell application "System Events" to tell process "Xcode" to click menu item "Step Over" of menu "Debug" of menu item "Debug" of menu "Product" of menu bar item "Product" of menu bar 1funktioniert genauso gut ohne zusätzlichen setup code.
Daniel Beck
Danke @DanielBeck, ich kenne mich mit AppleScript nicht aus. Ich habe meine Antwort bearbeitet und diesen Teil mit Ihrem Vorschlag vereinfacht - jetzt ist der Code besser lesbar.
Edymtt
Das funktioniert! Das Einrichten ist etwas kompliziert, dauert aber nur ca. 2 Minuten. Ich glaube, ich mag Quicksilver als Werkzeug, das ich für ein paar andere Dinge verwenden kann. Danke, dass du das herausgefunden hast!
Joseph.Hainline
0

Sie können den Tastaturkürzel-Mapper für diesen Vorgang verwenden (siehe angefügtes Bild).

Bildbeschreibung hier eingeben

ich hoffe das hilft dir

Justin Erswell
quelle
Ich war so hoffnungsvoll, dass das klappen würde! Als ich es ausprobierte, funktionierte nur die Tastenkombination F16, und F6 funktionierte nicht mehr in XCode (der Fehler wurde nur ausgegeben, anstatt etwas zu tun). Die Zuordnungen auf Systemebene scheinen die Zuordnungen auf App-Ebene zu überschreiben. Ich verwende XCode 4.5.2 und OSX 10.8.2. Hat dies für Sie funktioniert und welche Versionen verwenden Sie?
Joseph.Hainline
Hallo, es tut mir leid, es war nicht vollständig. Wenn Sie die Tastenkombination Strg + F6 verwenden, funktioniert dies zusammen mit F16.
Justin Erswell
Danke für den Versuch, aber ich denke, was ich suche, ist einfach nicht möglich. Strg + F6 ist ein anderer Befehl als F6. Wenn ich auf Systemebene eine Zuordnung vornehme, wird nur die App-Ebene überschrieben. Ich versuche wirklich, zwei Tasten gleichzeitig derselben Funktion zuzuordnen.
Joseph.Hainline
0

Ich mache das mit Keyboard Maestro. Sie können einen Befehl einer oder mehreren Anwendungen oder global zuweisen. Es ist eine fantastische Software, ohne die ich nicht leben kann. Es ist die beste Software, die ich je gekauft habe. Sie wären schockiert zu sehen, wie viele Tastenbelegungen ich habe.

Im Anhang befindet sich ein Bild, in dem ich einem Menüelement einen Hotkey zuordnet. Ignorieren Sie die im Bild abgeblendete Aktion. Es beginnt mit "Makro ausführen". Menu Select ist die gewünschte Aktion

Mike Retondo
quelle