Xcode:機能ごとの複数のキーバインディング


12

Xcodeでは、同じ機能に対して複数のキーバインディングを設定する機能が欲しいです。例えば、私が欲しいstep over機能が両方にマップするF6F16。Xcode自体からこれを行う方法がわかりません。

誰もこれを行う方法を知っていますか?(Xcode 4.2.1を使用しています)

回答:


4

あなたの質問について少し調べました。ネイティブでは、同じ機能に複数のショートカットを指定する方法はないようです- ~/Library/Prefences/com.apple.dt.Xcode.plistファイルを開いNSUserKeyEquivalentsて、の重複要素の追加を手動で編集しようとしましたStep Overが、Xcodeの起動時に重複要素が自動的に削除されました(ラップ要素の名前は<dict>)です。

この記事に触発されて、2番目のショートカットを設定する大まかな方法​​を見つけました。手順はOS X 10.8用です。

  1. in System PreferencesAccessibilityenableの下Enable access for assistive devices
  2. OS X用の無料のランチャーであるQuicksilverをダウンロードしてインストールします。
  3. 次のAppleScriptをDocumentsフォルダーに保存します(たとえば、名前を付けてStepOver.scpt)-必ず¬文字もコピーしてください。このスクリプトはXcodeをアクティブにし、Step Over機能を選択します。

    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. QuickSilverを起動し、[設定]-> [トリガー]-> [カスタムトリガー]に移動します。

  5. 新しいトリガーを作成します。このトリガーで、必要なStepOver.scptホットキーを使用してスクリプトを開きます(使用したスクリーンショットでF10)。[スコープ]タブでは、トリガーがXcodeでのみ機能するように指定できます。 トリガーの例
  6. この時点で追加のショートカットが機能するはずです。Xcodeで基本的なコンソールC ++アプリケーションを作成し、F6(「標準」ショートカットF10として)および(QuickSilverで設定された追加のショートカットとして)を使用してステップオーバーできました。

最後に、ソフトウェアを評価してKeyboard Maestroのようなマクロを作成することもできます。これは商用であり、私は試していません。


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 1追加のセットアップコードなしでも同様に機能します。
ダニエルベック

@DanielBeckに感謝します、私はAppleScriptに精通していません。私は答えを編集し、あなたの提案を使用してこの部分を単純化しました-コードが読みやすくなりました
edymtt

これは動作します!設定は少し複雑ですが、たった2分で完了しました。Quicksilverは、他のいくつかの用途に使用できるツールとして気に入っています。これを理解してくれてありがとう!
joseph.hainline

0

このプロセスにはキーボードショートカットマッパーを使用できます。添付画像を参照してください。

ここに画像の説明を入力してください

これがあなたのお役に立てば幸いです


これがうまくいくと期待していた!私が試してみたところ、F16キーボードショートカットのみが機能し、F6はXCode内から機能しなくなりました(何もせずにエラー音を出しました)。システムレベルのマッピングは、アプリレベルのマッピングを上書きするようです。XCode 4.5.2とOSX 10.8.2を使用しています。これはあなたのために機能しましたか?また、どのバージョンを使用していますか?
joseph.hainline

こんにちは。申し訳ありませんが、完全ではありませんでした。ctrl+ f6を正しく使用すると、f16と一緒に動作します。
ジャスティンアーズウェル

試みに感謝しますが、私が探しているものは単に不可能だと思います。Ctrl + F6は、F6とは異なるコマンドです。システムレベルでマップすると、アプリレベルが上書きされます。私は本当に2つのキーを同じ関数に同時にマッピングしようとしています。
joseph.hainline

0

これをKeyboard Maestroで行います。コマンドを1つ以上のアプリケーションまたはグローバルに割り当てることができます。それなしでは生きていけない素晴らしいソフトウェアです。これは私が今まで買った中で最高のソフトウェアです。私が持っているキーバインディングの数を見てショックを受けるでしょう。

添付されているのは、ホットキーをメニュー項目にマップする画像です。画像でグレー表示されているアクションを無視します。「マクロの実行」で始まります。 メニュー選択は、必要なアクションです

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.