Поделиться через


Привязка сочетаний клавиш к элементам меню

Чтобы привязать сочетание клавиш к пользовательской команде меню, просто добавьте запись в .vsct-файл, для пакета. В этом разделе объясняется, как сопоставить сочетание клавиш с пользовательской кнопкой, элементом меню или командой панели инструментов, а также как применить сопоставление клавиатуры в редакторе по умолчанию или ограничить его настраиваемым редактором.

Чтобы назначить сочетания клавиш существующим элементам меню Visual Studio, см. статью "Определение и настройка сочетаний клавиш".

Выбор сочетания клавиш

Многие сочетания клавиш уже используются в Visual Studio. Не следует назначать один и тот же ярлык нескольким командам, так как повторяющиеся привязки трудно обнаружить, а также может привести к непредсказуемым результатам. Поэтому рекомендуется проверить доступность ярлыка перед его назначением.

Проверка доступности сочетания клавиш

  1. В окне "Параметры>инструментов>" выберите "Клавиатура".

  2. Убедитесь, что параметр Использовать новое сочетание клавиш установлен на Глобальный.

  3. В поле сочетания клавиш введите сочетание клавиш, которое вы хотите использовать.

    Если ярлык уже используется в Visual Studio, ярлык, используемый в данный момент в поле, отобразит команду, которая в настоящее время вызывает ярлык.

  4. Попробуйте использовать различные сочетания ключей, пока не найдите его, который не сопоставлен.

    Замечание

    Сочетания клавиш, использующие ALT , могут открывать меню и не выполнять команду напрямую. Поэтому ярлык, используемый в данный момент полем, может быть пустым при вводе ярлыка, включающего ALT. Вы можете убедиться, что ярлык не открывает меню, закрыв диалоговое окно "Параметры " и нажимая клавиши.

    В следующей процедуре предполагаем, что у вас есть существующий VSPackage с командой меню. Если вам нужна помощь, ознакомьтесь со сведениями о создании расширения с помощью команды меню.

Назначение сочетания клавиш команд

  1. Откройте файл .vsct для вашего пакета.

  2. Создайте пустой <KeyBindings> раздел после того, <Commands> как он еще не присутствует.

    Предупреждение

    Дополнительные сведения о привязках ключей см. в разделе "Привязка ключей".

    <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 не следует использовать без второго модификатора, так как нажатие клавиши Shift уже приводит к тому, что большинство буквенно-цифровых клавиш вводят прописную букву или символ.

    Коды виртуальных ключей позволяют получить доступ к специальным ключам, которые не связаны с ними символами, например ключами функций и ключом Backspace . Дополнительные сведения см. в разделе "Коды виртуальных ключей".

    Чтобы команда стала доступной в редакторе Visual Studio, установите атрибут editor в guidVSStd97.

    Чтобы сделать команду доступной только в пользовательском редакторе, задайте editor атрибут имени пользовательского редактора, созданного шаблоном пакета Visual Studio при создании VSPackage, включающего пользовательский редактор. Чтобы найти значение имени, просмотрите раздел <Symbols> для узла <GuidSymbol>, атрибут которого name заканчивается на "editorfactory". Это имя пользовательского редактора.

Пример 1

В этом примере сочетание клавиш CTRL+ALT+C связывается с командой, имя которой указано в cmdidMyCommand, и находится в пакете, имя которого указано в MyPackage.

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

Пример 2

В этом примере сочетание клавиш CTRL+B привязывается к команде с именем cmdidBold проекта TestEditor. Команда доступна только в пользовательском редакторе, а не в других редакторах.

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