キーボード ショートカットをカスタム メニュー コマンドにバインドするには、パッケージの .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" />