將鍵盤快速鍵繫結至功能表項目

若要將鍵盤快速鍵繫結至自訂功能表命令,只要將項目新增至套件的 .vsct 檔案即可。 本主題說明如何將鍵盤快速鍵對應至自訂按鈕、功能表項目或工具列命令,以及如何在預設編輯器中套用鍵盤對應,或將其限制為自訂編輯器。

若要將鍵盤快速鍵指派至現有的 Visual Studio 功能表項目,請參閱識別和自訂鍵盤快速鍵

選擇按鍵組合

Visual Studio 中已使用許多鍵盤快速鍵。 您不應該將相同的快速鍵指派給多個命令,因為重複的繫結既難以偵測,亦可能導致無法預期的結果。 因此,最好在指派快速鍵之前先確認其可用性。

確認鍵盤快速鍵的可用性

  1. 在 [工具]>[選項]>[環境] 視窗中,選取 [鍵盤]

  2. 確定 [新的快速鍵適用於] 設定為 [全域]

  3. 在 [按快速鍵] 方塊中,輸入您要使用的鍵盤。

    如果 Visual Studio 中已經使用該快速鍵,則 [快速鍵目前已被下列命令所使用] 方塊會顯示該快速鍵目前呼叫的命令。

  4. 請嘗試不同的按鍵組合,直到您找到未對應的組合。

    注意

    使用 Alt 的鍵盤快速鍵可能會開啟功能表,而不會直接執行命令。 因此,當您輸入包含 Alt 的快速鍵時,[快速鍵目前已被下列命令所使用] 方塊可能為空白。您可以關閉 [選項] 對話方塊,然後按下按鍵來確認該快速鍵不會開啟功能表。

    下列程序假設您有一個包含功能表命令的現有 VSPackage。 如果您需要協助,請參閱使用功能表命令建立延伸模組

為命令指派鍵盤快速鍵

  1. 開啟套件的 .vsct 檔案。

  2. 如果尚未存在,請在 <Commands> 之後建立空白的 <KeyBindings> 區段。

    警告

    如需按鍵繫結關係的詳細資訊,請參閱按鍵繫結關係

    <KeyBindings> 區段中,建立 <KeyBinding> 項目。

    guidid 屬性設定為您想要叫用的命令。

    mod1 屬性設定為 ControlAltShift

    KeyBindings 區段看起來應該像這樣:

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

    如果您的鍵盤快速鍵需要兩個以上的按鍵,請設定 mod2key2 屬性。

    在大部分情況下,沒有第二個修飾詞時不應該使用 Shift,因為按下它已經會導致大部分英數按鍵輸入大寫字母或符號。

    虛擬按鍵碼可讓您存取沒有與其相關聯的字元的特殊按鍵,例如功能鍵和退格鍵。 如需詳細資訊,請參閱虛擬按鍵碼

    若要在 Visual Studio 編輯器中使用該命令,請將 editor 屬性設定為 guidVSStd97

    若要使命令只能在自訂編輯器中使用,請在建立包含自訂編輯器的 VSPackage 時,將 editor 屬性設定為 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="guidVSStd97" id="cmdidBold" editor="guidTestEditorEditorFactory" key1="B" mod1="Control" />