Xcode: plusieurs raccourcis clavier par fonction

12

Dans Xcode, j'aimerais pouvoir configurer plusieurs raccourcis clavier pour la même fonction. Par exemple, j'aimerais que la step overfonction soit mappée à la fois sur F6et F16. Je ne vois pas de moyen de le faire à partir de Xcode lui-même.

Est-ce que quelqu'un sait comment faire ceci? (J'utilise Xcode 4.2.1)

joseph.hainline
la source

Réponses:

4

J'ai cherché un peu sur votre question. Nativement, il semble qu'il n'y ait aucun moyen de spécifier plusieurs raccourcis pour la même fonction - j'ai essayé d'ouvrir un ~/Library/Prefences/com.apple.dt.Xcode.plistfichier et de modifier manuellement l' NSUserKeyEquivalentsajout d'un élément en double pour Step Over, mais au démarrage de Xcode, l'élément en double a été automatiquement supprimé (cela a du sens puisque l'élément d'habillage est nommé <dict>).

J'ai trouvé un moyen approximatif de définir le deuxième raccourci, inspiré par cet article . Les instructions sont pour OS X 10.8:

  1. in System Preferences, under Accessibilityenable Enable access for assistive devices;
  2. téléchargez et installez Quicksilver , un lanceur gratuit pour OS X;
  3. enregistrez le dossier AppleScript dans Documents suivant (par exemple avec le nom StepOver.scpt) - assurez-vous de copier également les ¬caractères. Ce script active Xcode et sélectionne la Step Overfonction.

    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. lancez QuickSilver et accédez à Préférences -> Déclencheurs -> Déclencheurs personnalisés

  5. créer un nouveau déclencheur, dans lequel vous ouvrez le StepOver.scptscript en utilisant la touche de raccourci que vous souhaitez (dans la capture d'écran que j'ai utilisée F10). Dans l'onglet Étendue, vous pouvez spécifier que le déclencheur ne fonctionne que dans Xcode. exemple de déclenchement
  6. à ce stade, le raccourci supplémentaire devrait fonctionner, j'ai construit une application C ++ de console de base dans Xcode et je pourrais passer en utilisant en utilisant F6(comme raccourci "standard") et F10(comme raccourci supplémentaire configuré avec QuickSilver).

Enfin, vous pouvez également évaluer un logiciel pour créer des macros comme Keyboard Maestro - c'est commercial et je ne l'ai pas essayé.

edymtt
la source
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 1fonctionne aussi bien sans code d'installation supplémentaire.
Daniel Beck
Merci @DanielBeck, je ne connais pas AppleScript. J'ai édité ma réponse et simplifié cette partie en utilisant votre suggestion - maintenant le code est plus lisible.
edymtt
Cela marche! C'est un peu compliqué à installer, mais cela n'a pris que 2 minutes environ. Je pense que j'aime Quicksilver comme un outil que je pourrais utiliser pour quelques autres choses. Merci pour la solution!
joseph.hainline
0

Vous pouvez utiliser le mappeur de raccourcis clavier pour ce processus, voir l'image jointe.

entrez la description de l'image ici

J'espère que ceci vous aide

Justin Erswell
la source
J'espérais tellement que ça marcherait! Lorsque je l'ai essayé, seul le raccourci clavier F16 fonctionnait et F6 ne fonctionnait plus depuis XCode (il faisait juste retentir l'erreur au lieu de faire quoi que ce soit). Les mappages au niveau du système semblent remplacer les mappages au niveau de l'application. J'utilise XCode 4.5.2 et OSX 10.8.2. Est-ce que cela a fonctionné pour vous et quelles versions utilisez-vous?
joseph.hainline
Salut, désolé, ce n'était pas complet; y utilisez correctement ctrl + f6 cela fonctionnera avec f16 qui est le meilleur je pense que vous pouvez obtenir mes excuses.
Justin Erswell
Merci pour la tentative, mais je suppose que ce que je recherche n'est tout simplement pas possible. Ctrl + F6 est une commande différente de F6. Lorsque je mappe au niveau du système, cela remplace simplement le niveau de l'application. J'essaie vraiment d'obtenir deux touches mappées en même temps sur la même fonction.
joseph.hainline
0

Je le fais avec Keyboard Maestro. Vous pouvez affecter une commande à une ou plusieurs applications ou globale. C'est un logiciel fantastique sans lequel je ne peux pas vivre. C'est le meilleur logiciel que j'aie jamais acheté. Vous seriez choqué de voir combien de raccourcis clés je possède.

Ci-joint une image où je mappe un raccourci clavier vers un élément de menu. Ignorez l'action grisée dans l'image. Il commence par "Exécuter la macro". Menu Select est l'action que vous souhaitez

Mike Retondo
la source