キーボード ショートカットをメニュー項目にバインドする

キーボード ショートカットをカスタム メニュー コマンドにバインドするには、パッケージの .vsct ファイルにただエントリを追加します。 このトピックでは、キーボード ショートカットをカスタムのボタン、メニュー項目、またはツールバー コマンドにマップする方法と、キーボード マップを、既定のエディターで適用したり、カスタム エディターに制限したりする方法について説明します。

既存の Visual Studio メニュー項目にキーボード ショートカットを割り当てるには、キーボード ショートカットの識別とカスタマイズに関するページを参照してください。

キーの組み合わせを選択する

Visual Studio では既に、多くのキーボード ショートカットが使用されています。 バインドの重複は、検出するのが困難で、予期しない結果を引き起こす可能性もあるため、複数のコマンドに同じショートカットを割り当ててはいけません。 そのため、ショートカットを割り当てる前に、利用可能であることの確認をお勧めします。

キーボード ショートカットを利用可能であることを確認するには

  1. [ツール]>[オプション]>[環境] ウィンドウで、[キーボード] を選択します。

  2. [使用する場所][グローバル] に設定されていることを確認します。

  3. [ショートカット キー] ボックスに、使用するキーボード ショートカットを入力します。

    ショートカットが既に Visual Studio で使用されている場合は、そのショートカットによって現在呼び出されるコマンドが、[現在使用されているショートカット] ボックスに表示されます。

  4. マップされていないキーの組み合わせが見つかるまで、さまざまな組み合わせを試してください。

    Note

    Alt キーを使用するキーボード ショートカットでは、メニューを開けますがコマンドを直接実行できません。 そのため、Alt キーを含むショートカットを入力すると、[現在使用されているショートカット] ボックスが空白になることがあります。[オプション] ダイアログ ボックスを閉じてキーを押せば、そのショートカットでメニューが開かないことを確認できます。

    次の手順は、1 つのメニュー コマンドがある既存の VSPackage を前提としています。 それを行うヘルプが必要な場合は、「メニュー コマンドを使用した拡張機能の作成」を参照してください。

コマンドにキーボード ショートカットを割り当てるには

  1. パッケージの .vsct ファイルを開きます。

  2. まだない場合は、<Commands> の後に空の <KeyBindings> セクションを作成します。

    警告

    キー バインドの詳細については、Keybinding に関するページを参照してください。

    <KeyBindings> セクション内に <KeyBinding> エントリを作成します。

    guid 属性と id 属性を、呼び出そうとしているコマンドの属性に設定します。

    mod1 属性を ControlAlt、または Shift に設定します。

    KeyBindings セクションはこのようになるはずです。

    <KeyBindings>
        <KeyBinding guid="<name of command set>" id="<name of command id>"
            editor="guidVSStd97" key1="1" mod1="CONTROL"/>
    </KeyBindings>
    
    

    キーボード ショートカットに 3 つ以上のキーが必要な場合は、mod2 および key2 属性を設定します。

    たいていの場合は、Shift キーを押すとほとんどの英数字キーで大文字または記号を入力することになるため、2 番目の修飾子なしでこのキーを使用しないでください。

    仮想キー コードを使用すると、関数キーや Backspace キーなど、文字が関連付けられていない特殊なキーにアクセスすることができます。 詳細については、「仮想キー コード」を参照してください。

    Visual Studio エディターでコマンドを使用できるようにするには、editor 属性を guidVSStd97 に設定します。

    カスタム エディターでのみコマンドを使用できるようにするには、editor 属性を、カスタム エディターを含む VSPackage を作成したときに Visual Studio パッケージ テンプレートによって生成されたカスタム エディターの名前に設定します。 名前の値を見つけるには、name 属性が "editorfactory" で終わる <GuidSymbol> ノードの <Symbols> セクションを調べます。これがカスタム エディターの名前です。

例 1

この例では、キーボード ショートカットの Ctrl+Alt+C を、MyPackage という名前のパッケージの cmdidMyCommand という名前のコマンドにバインドしています。

<CommandTable>
. . .
<Commands>
. . .
</Commands>
<KeyBindings>
  <KeyBinding guid="guidMyPackageCmdSet" id="cmdidMyCommand"
      key1="C" mod1="CONTROL" mod2="ALT" editor="guidVSStd97" />
</KeyBindings>
. . .
</CommandTable>

例 2

この例では、キーボード ショートカットの Ctrl+B を、TestEditor という名前のプロジェクトの cmdidBold という名前のコマンドにバインドしています。 このコマンドは、カスタム エディターでのみ使用でき、他のエディターでは使用できません。

<KeyBinding guid="guidVSStd97" id="cmdidBold" editor="guidTestEditorEditorFactory" key1="B" mod1="Control" />