Как настроить 5-кнопочную мышь в Sublime Text 3 - PullRequest
2 голосов
/ 14 июля 2020

У меня есть мышь с 5 кнопками, как я могу настроить эти кнопки для выполнения определенных c задач в Sublime Text 3. Например, когда button4 выполняет Build, а button5 выполняет Build With...

1 Ответ

3 голосов
/ 14 июля 2020

В случае Sublime Text действия мыши настраиваются так называемыми mousemap файлами (с расширением .sublime-mousemap). Обычно у вас может быть 2 варианта этих файлов: -

  • Default.sublime-mousemap: это будет определять действия мыши для любой платформы.
  • Default ($platform).sublime-mousemap: это будет определять действия мыши для Speci c platform, где $platform - любое one из Windows, Linux или OSX в зависимости от вашей операционной системы.

Вы можете просмотреть поставляемые по умолчанию файлы карты мыши с использованием View Package File из палитры команд и поиска mousemap.

Чтобы определить свои собственные действия мыши (или переопределить любые существующие действия), вы должны создать файл с помощью имя Default.sublime-mousemap в каталоге User (чтобы попасть в этот каталог, выберите Preferences -> Browse Packages ... в главном меню) для независимого от платформы переопределения (или Default ($platform).sublime-mousemap для переопределения, зависящего от платформы, в зависимости от вашей ОС).

Как только это будет сделано, вот некоторые базовые c знания о файлах карты мыши (обратите внимание, что нет официальной документации или документации сообщества по файлам карты мыши, поэтому все основано на экспериментах и ​​на том, что разработчики имеют id о таких файлах).

Вот значение некоторых клавиш в файлах карты мыши: -

  • button : Это определяет имя кнопка. Например, button1 относится к левой кнопке мыши, а button2 определяет правую кнопку мыши. Точно так же вы можете иметь button3 , button4 . button5 et c. Я не уверен, сколько на самом деле существует таких названий кнопок. Также для колеса прокрутки у вас есть scroll_up для движения вверх и scroll_down для противоположного поведения.

  • модификаторы : Это список клавиш-модификаторов, например ctrl , alt et c. Например, ["alt"], ["ctrl", "alt"]. Когда вы определяете список модификаторов, все перечисленные модифицирующие клавиши должны быть нажаты одновременно, а затем нажатие / отпускание соответствующей кнопки запускает какое-то действие.

  • command : Это определяет команда, которая будет выполнена, когда соответствующая кнопка будет отпущена после нажатия. Если эта команда принимает какие-либо аргументы, вы можете иметь для нее ключ args .

  • press_command : определяет команду, которая будет выполняться, когда соответствующая кнопка нажата . Если эта команда принимает какие-либо аргументы, вы можете использовать для нее ключ press_args .

  • count : количество нажатий соответствующая кнопка для запуска действия (под действием я имею в виду выполнение соответствующей команды / press_command )

ПРИМЕЧАНИЕ. можно определить как command , так и press_command , если хотите.

Давайте рассмотрим несколько примеров: -

Имя файла: - User/Default.sublime-mousemap

[
    {
        "button": "button2",
        "modifiers": [],
        "press_command": "echo",
        "press_args": {
            "message": "I am pressed"
        },
        "command": "echo",
        "args": {
            "message": "I am released"
        },
    }
]

Здесь правая кнопка ( button2 ) привязана к встроенной команде echo . Если вы сейчас щелкните правой кнопкой мыши, поведение по умолчанию было бы фактически открытием контекстного меню, но теперь у нас есть переопределение этого поведения, и теперь вы можете увидеть соответствующие сообщения {'message': 'I am pressed'} или {'message': 'I am released'} в консоль в зависимости от того, нажали вы или отпустили после нажатия.

Для вашего случая вы можете иметь что-то вроде следующего: -

[
    {
        "button": "button1", // replace button1 with button4/5 because I don't have that many mouse buttons.
        "modifiers": ["alt", "ctrl", "shift"],
        "press_command": "undo",
    }   
]

Теперь, когда вы теперь нажимаете button1 (одновременно удерживая alt , ctrl , shift ), должна быть выполнена команда undo . Вы можете установить модификаторы в пустой список, если вы этого не хотите.

Что касается сборки, если вы имеете в виду выполнение самой последней системы сборки, замените undo, с build .

В качестве дополнительного бонуса, если вы хотите отключить какие-либо действия кнопок, просто используйте команду n oop.

Пример: -

[
    {
        "button": "button1",
        "modifiers": [],
        "press_command": "noop",
    }   
]

Это отключит button1 , и теперь вы больше не можете перетаскивать select ;-) Так что будьте осторожны.

Надеюсь, это немного поможет.

...