Поскольку привязки здесь предназначены для кнопок мыши, а не для клавиш клавиатуры, фактические привязки не сохраняются в файлах sublime-keymap
, а вместо этого хранятся в файлах sublime-mousemap
. Этот формат похож на файл sublime-keymap
, но он включает в себя возможность привязать команду к кнопкам мыши, количеству кликов и клавишам-модификаторам.
Примечание: в отличие от привязки клавиш, невозможно включить ключ context
, поэтому привязки мыши - дело "все или ничего"; вы не можете настроить некоторые из них на применение только в некоторых обстоятельствах, а не в других, например.
Чтобы изменить привязки мыши, необходимо выполнить ту же самую общую процедуру, что и при привязке ключа, а именно создать файл с соответствующим именем в пакете User
, который включает ваши измененные привязки. Нет никаких пунктов меню по умолчанию или записей палитры команд, которые позволили бы вам редактировать сопоставления мыши, поэтому вам нужно сделать это вручную.
Примечание: В следующих именах файлов $PLATFORM
является одним из Windows
, OSX
или Linux
в зависимости от используемой платформы (случай важен). В вашем вопросе не указано, на какой платформе вы находитесь, поэтому в приведенных ниже инструкциях предполагается, что Windows
; изменить платформу по мере необходимости для ваших собственных нужд. В OSX ваши привязки могут включать super
для обозначения ключа command
, как они могут в привязках клавиш.
Если имя файла привязки ключа - Default ($PLATFORM).sublime-keymap
, соответствующий файл для привязки мыши - Default ($PLATFORM).sublime-mousemap
. Кроме того, как и большинство файлов ресурсов, которые задают поведение по умолчанию, базовые файлы хранятся в пакете Default
.
Если вы используете запись палитры команд View Package File
, чтобы открыть Default/Default (Windows).sublime-mousemap
, вы можете увидеть все привязки мыши по умолчанию. В частности, здесь есть две привязки, с которыми вы, вероятно, захотите поработать, и они находятся в верхней части файла в разделе «Basic drag select»:
{
"button": "button1", "count": 1, "modifiers": ["ctrl"],
"press_command": "drag_select",
"press_args": {"additive": true}
},
{
"button": "button1", "count": 1, "modifiers": ["alt"],
"press_command": "drag_select",
"press_args": {"subtractive": true}
},
Первая привязка говорит о том, что когда левая кнопка мыши (button1
) нажимается один раз, пока нажата клавиша ctrl
, команда drag_select
должна выполняться с аргументом, указывающим, что выбор должен быть added
к.
Аналогично, вторая привязка использует alt
вместо ctrl
и выполняет ту же команду, сообщая ей subtract
из выбора вместо добавления к нему.
Таким образом, Ctrl + левый щелчок добавляет каретку (и любой текст, на который вы перетаскиваете) к выделению, в то время как Alt + левый клик делает обратное и удаляет каретки и текст, который вы перетаскиваете более.
Чтобы осуществить нужное изменение, создайте файл со следующим содержимым и сохраните его как Default (Windows).sublime-mousemap
в пакете User
(вы можете использовать Preferences > Browse Packages
, чтобы найти его).
Примечание: Если такой файл уже существует, добавьте две привязки здесь к существующему файлу вместо сохранения поверх него; в этом случае не включайте символы [
и ]
, но убедитесь, что вы вставили привязки между существующими в файле вместе с другими привязками.
[
{
"button": "button1", "count": 1, "modifiers": ["alt"],
"press_command": "drag_select",
"press_args": {"additive": true}
},
{
"button": "button1", "count": 1, "modifiers": ["ctrl"],
"press_command": "drag_select",
"press_args": {"subtractive": true}
},
]
Это две привязки сверху, но с замененными модификаторами. Это позволяет клавише Alt добавлять выборки и Ctrl удалять выделение, эффективно отменяя их действия.
Если вам нравится, вам нужно только добавить привязку для alt
. Однако, если вы сделаете это, привязка для ctrl
все еще будет существовать, то есть у вас будет две привязки для добавления выбора и никаких привязок для удаления выбора. Это может или не может вызывать беспокойство в зависимости от того, насколько вы полагаетесь на этот конкретный переплет.