將鍵盤快速鍵繫結至功能表項目
若要將鍵盤快速鍵繫結至自訂功能表命令,只要將項目新增至套件的 .vsct 檔案即可。 本主題說明如何將鍵盤快速鍵對應至自訂按鈕、功能表項目或工具列命令,以及如何在預設編輯器中套用鍵盤對應,或將其限制為自訂編輯器。
若要將鍵盤快速鍵指派至現有的 Visual Studio 功能表項目,請參閱識別和自訂鍵盤快速鍵。
選擇按鍵組合
Visual Studio 中已使用許多鍵盤快速鍵。 您不應該將相同的快速鍵指派給多個命令,因為重複的繫結既難以偵測,亦可能導致無法預期的結果。 因此,最好在指派快速鍵之前先確認其可用性。
確認鍵盤快速鍵的可用性
在 [工具]>[選項]>[環境] 視窗中,選取 [鍵盤]。
確定 [新的快速鍵適用於] 設定為 [全域]。
在 [按快速鍵] 方塊中,輸入您要使用的鍵盤。
如果 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>
如果您的鍵盤快速鍵需要兩個以上的按鍵,請設定
mod2
和key2
屬性。在大部分情況下,沒有第二個修飾詞時不應該使用 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" />