Sublime Text修改Linux鼠标映射以使用第4个鼠标按钮

mat*_*tst 4 sublimetext sublimetext2 sublimetext3

在Linux上使用Sublime Text 3(Build 3059).

在Sublime Text列中,选择可用于选择文件的矩形区域.当使用鼠标执行此操作时,在每个平台上使用不同的鼠标按钮.在OS X和Windows上,鼠标中键可用于选择文本矩形.在Linux上你需要使用鼠标右键+ shift,我觉得这个组合不方便,所以我想用鼠标上的第4个按钮来做这个而不用修改键的麻烦.

很简单我只需要在默认的mousemap文件中更改列选择鼠标映射.

以下是3(Linux,OS X和Windows)默认鼠标映射文件的相关部分:

// Column select Linux default mousemap file
{
    "button": "button2", "modifiers": ["shift"],
    "press_command": "drag_select",
    "press_args": {"by": "columns"}
},

// Column select is the same in the default OS X and Windows mousemap files:
{
    "button": "button3",
    "press_command": "drag_select",
    "press_args": {"by": "columns"}
},
Run Code Online (Sandbox Code Playgroud)

所以我认为我需要做的就是使用与OS X和Windows相同的代码,但设置"button4"而不是"button3".所以我最终得到了这个:

// ~/.config/sublime-text-3/Packages/User/Default (Linux).sublime-mousemap

[
    // Map column select to 4th mouse button.
    {
        "button": "button4",
        "press_command": "drag_select",
        "press_args": {"by": "columns"}
    }
]
Run Code Online (Sandbox Code Playgroud)

所有这些都非常合乎逻辑且直截了当,除非它不起作用.按第四个鼠标按钮不会进行列选择,它什么也不做.怎么了?!

mat*_*tst 7

我花了一段时间来解决这个问题,但......

在Linux中,第4个鼠标按钮不一定由"button4"引用.实际上在我的系统上,第4个鼠标按钮被"button8"引用.所有需要的是在我使用"button4"之前使用"button8".

[
    // Map column selection to 4th mouse button ("button8").
    {
        "button": "button8",
        "press_command": "drag_select",
        "press_args": {"by": "columns"}
    }
]
Run Code Online (Sandbox Code Playgroud)

希望这有助于某人.


编辑: UNIX/Linux用户可以使用xev它来打印X事件的内容,以获取他们的鼠标按钮编号.

  • 我使用 `xev` 来打印 X 事件的内容。运行它并将鼠标指针放在它打开的小窗口中,然后按鼠标按钮。希望这可以帮助。 (2认同)