キーボード ショートカットをカスタム メニュー コマンドにバインドするには、パッケージの .vsct ファイルにエントリを追加するだけです。 このトピックでは、キーボード ショートカットをカスタム ボタン、メニュー項目、またはツール バー コマンドにマップする方法と、既定のエディターでキーボード マッピングを適用する方法、またはカスタム エディターに制限する方法について説明します。
既存の Visual Studio メニュー項目にキーボード ショートカットを割り当てるには、「 キーボード ショートカットの識別とカスタマイズ」を参照してください。
キーの組み合わせを選択する
Visual Studio では、多くのキーボード ショートカットが既に使用されています。 複数のコマンドに同じショートカットを割り当てないようにしてください。重複するバインドは検出が困難であり、予期しない結果が発生する可能性があるためです。 そのため、割り当てる前にショートカットの可用性を確認することをお勧めします。
キーボード ショートカットの可用性を確認するには
[ツール>オプション>Environment] ウィンドウで、[キーボード] を選択します。
[ 新しいショートカットを使用する] が [ グローバル] に設定されていることを確認します。
[ ショートカット キーを押す ] ボックスに、使用するキーボード ショートカットを入力します。
Visual Studio でショートカットが既に使用されている場合は、 現在使用されているショートカット ボックスに、ショートカットが現在呼び出しているコマンドが表示されます。
マップされていないキーが見つかるまで、さまざまなキーの組み合わせを試してください。
注
Alt キーを使用するキーボード ショートカットでは、メニューが開き、コマンドが直接実行されない場合があります。 そのため、Alt を含むショートカットを入力すると、現在ボックスで使用されているショートカットが空白になる場合があります。ショートカットがメニューを開かないかどうかを確認するには、[オプション] ダイアログ ボックスを閉じ、キーを押します。
次の手順では、メニュー コマンドを含む既存の VSPackage があることを前提としています。 ヘルプが必要な場合は、「メニュー コマンドを使用 して拡張機能を作成する」を参照してください。
コマンドにキーボード ショートカットを割り当てるには
パッケージの .vsct ファイルを開きます。
まだ存在しない場合は、
<Commands>の後に空の<KeyBindings>セクションを作成します。警告
キー バインドの詳細については、「 キー バインド」を参照してください。
[
<KeyBindings>] セクションで、<KeyBinding>エントリを作成します。guid属性とid属性を、呼び出すコマンドの属性に設定します。mod1属性を Control、Alt、または Shift に設定します。KeyBindings セクションは次のようになります。
<KeyBindings> <KeyBinding guid="<name of command set>" id="<name of command id>" editor="guidVSStd97" key1="1" mod1="CONTROL"/> </KeyBindings>キーボード ショートカットに 2 つ以上のキーが必要な場合は、
mod2属性とkey2属性を設定します。ほとんどの場合、 Shift キーを押すと、ほとんどの英数字キーに大文字または記号が入力されるため、2 番目の修飾子なしでは使用しないでください。
仮想キー コードを使用すると、ファンクション キーや Backspace キーなど、文字が関連付けられていない特殊なキーにアクセスできます。 詳細については、「 仮想キー コード」を参照してください。
Visual Studio エディターでコマンドを使用できるようにするには、
editor属性をguidVSStd97に設定します。コマンドをカスタム エディターでのみ使用できるようにするには、
editor属性を、カスタム エディターを含む VSPackage を作成したときに Visual Studio パッケージ テンプレートによって生成されたカスタム エディターの名前に設定します。 名前の値を見つけるには、[<Symbols>] セクションで、name属性が "editorfactory" で終わる<GuidSymbol>ノードを探します。これはカスタム エディターの名前です。
例 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="guidTestEditorEditorFactory" id="cmdidBold" editor="guidVSStd97" key1="B" mod1="Control" />