如何在 Sublime Text 3 中配置 5 个按钮鼠标

an4*_*911 3 key-bindings preferences sublimetext sublimetext3

我有5个按钮鼠标,我怎么可以配置这些按钮来执行特定任务的崇高文字3.就像当button4Buildbutton5Build With...

Ash*_*noy 5

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

  • Default.sublime-mousemap:这将为任何平台定义鼠标操作。
  • Default ($platform).sublime-mousemap:这将定义一个特定的平台,在这里鼠标动作$platform是任何一个WindowsLinuxOSX根据您的操作系统上。

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

为了定义自己的鼠标操作(或重写任何现有操作),您必须通过的名称创建一个文件Default.sublime-mousemapUser目录(去这个目录,选择Preferences -> Browse Packages ...从主菜单中)为独立于平台的覆盖(或Default ($platform).sublime-mousemap用于平台依赖覆盖取决于您的操作系统)。

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

以下是 mousemap 文件中一些键的含义:-

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

  • 修饰符:这是修饰键的列表,例如ctrlalt等。例如["alt"]["ctrl", "alt"]。定义修饰符列表时,应同时按下列出的所有修饰键,然后按下/释放相应按钮会触发某些操作。

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

  • press_command:这定义了按下相应按钮时要执行的命令。如果此命令接受任何参数,您可以为其设置一个press_args键。

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

注意:如果需要,您可以同时定义commandpress_command

让我们看一些例子:-

文档名称 :- User/Default.sublime-mousemap

[
    {
        "button": "button2",
        "modifiers": [],
        "press_command": "echo",
        "press_args": {
            "message": "I am pressed"
        },
        "command": "echo",
        "args": {
            "message": "I am released"
        },
    }
]
Run Code Online (Sandbox Code Playgroud)

在这里,右键(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",
    }   
]
Run Code Online (Sandbox Code Playgroud)

现在,当您现在按下button1 时(同时按住alt, ctrl, shift),应执行撤消命令。如果您不想要,可以将修饰符设置为空列表。

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

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

例子 :-

[
    {
        "button": "button1",
        "modifiers": [],
        "press_command": "noop",
    }   
]
Run Code Online (Sandbox Code Playgroud)

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

希望这会有所帮助。

  • @an4s911我相信您可以对 command/press_command 使用任何命令名称(请注意,它们都是相同的,唯一的区别是根据鼠标按钮的状态触发的内容)。以下是 ST 中可用参数的几乎完整命令列表:- https://docs.sublimetext.io/reference/commands.html#about-paths-in-command-arguments (2认同)