如何在 Sublime Text 3 中配置 5 键鼠标

How to configure 5 buttons mouse in Sublime Text 3

我有一个带有 5 个按钮的鼠标,如何配置这些按钮以在 Sublime Text 3 中执行特定任务。就像 button4 执行 Buildbutton5 执行 Build With...

对于 Sublime Text,鼠标操作由所谓的 mousemap 文件(扩展名为 .sublime-mousemap)配置。您通常可以拥有这些文件的 2 个变体:-

  • Default.sublime-mousemap:这将为任何平台定义鼠标操作。
  • Default ($platform).sublime-mousemap:这将为特定平台定义鼠标操作,其中 $platformWindows、[=19] 中的任何 =] 或 OSX 取决于您的操作系统。

您可以使用命令面板中的 View Package File 并搜索 mousemap.

查看默认的鼠标映射文件

为了定义您自己的鼠标操作(或覆盖任何现有操作),您必须在 User 目录中创建一个名为 Default.sublime-mousemap 的文件(以进入该目录, select Preferences -> Browse Packages ... 从主菜单)独立于平台的覆盖(或 Default ($platform).sublime-mousemap 依赖于平台的覆盖取决于您的 OS)。

完成后,这里是关于鼠标映射文件的一些基本知识(请注意,没有关于鼠标映射文件的官方或社区文档,因此一切都基于实验以及开发人员对此类文件的评价)。

鼠标映射文件中一些键的含义如下:-

  • button:定义按钮的名称。例如,button1 指的是鼠标左键,而 button2 定义的是鼠标右键。同样,你可以有 button3button4button5 等。我不确定实际存在多少个这样的按钮名称。同样对于滚轮,您有 scroll_up 用于向上滚动运动和 scroll_down 用于相反的行为。

  • modifiers:这是一个修饰键列表,例如 ctrlalt等。例如["alt"]["ctrl", "alt"]。定义修改器列表时,应同时按下列出的所有修改器键,然后 pressing/releasing 相应的按钮触发一些操作。

  • command:这里定义了对应按钮按下后松开时执行的命令。如果此命令接受任何参数,您可以为其设置一个 args 键。

  • press_command:这定义了相应按钮被按下时要执行的命令。如果这个命令接受任何参数,你可以有一个 press_args 键。

  • count:你必须按下相应按钮的次数才能触发动作(按动作,我的意思是执行相应的命令/press_command)

NOTE: You can define both command and press_command if you wanted to.

让我们看一些例子:-

文件名:- 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(同时按住 altctrlshift同时),应该执行undo命令。如果您不想要,可以将 modifiers 设置为空列表。

至于构建,如果您的意思是执行最新的构建系统,请将 undo 替换为 build.

作为临别奖励提示,如果您想禁用任何按钮操作,只需使用命令 noop

示例:-

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

这将禁用 button1,现在您不能再拖动 select ;-) 所以要小心。

希望这对您有所帮助。