148

我想创建一个 Eclipse 风格的快捷方式Ctrl+MouseClick来打开函数/方法。Sublime Text 3 已经调用了这个函数,goto_definition但它绑定到F12.

但我不确定如何创建此绑定。我在这里寻找文档,但它太复杂了。你能帮我解决这个简单的键绑定吗?

编辑:在这篇文章之后,我被告知要这样做:http ://webtempest.com/better-definition-navigation-in-sublime-text-3/

[
    {
        "button": "button1", 
        "count": 1, 
        "modifiers": ["super", "shift"],
        "press_command": "drag_select",
        "command": "goto_definition"
    }
]

这似乎不起作用,ctrl++什么shift也不click执行。

4

6 回答 6

257

For anyone else who wants to set Eclipse style goto definition, you need to create .sublime-mousemap file in Sublime User folder.

Windows - create Default (Windows).sublime-mousemap in %appdata%\Sublime Text 3\Packages\User

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

Mac - create Default (OSX).sublime-mousemap in ~/Library/Application Support/Sublime Text 3/Packages/User

Now open that file and put the following configuration inside

[
    {
        "button": "button1", 
        "count": 1, 
        "modifiers": ["ctrl"],
        "press_command": "drag_select",
        "command": "goto_definition"
    }
]

You can change modifiers key as you like.


Since Ctrl-button1 on Windows and Linux is used for multiple selections, adding a second modifier key like Alt might be a good idea if you want to use both features:

[
    {
        "button": "button1", 
        "count": 1, 
        "modifiers": ["ctrl", "alt"],
        "press_command": "drag_select",
        "command": "goto_definition"
    }
]

Alternatively, you could use the right mouse button (button2) with Ctrl alone, and not interfere with any built-in functions.

于 2013-06-11T14:38:02.103 回答
95

将转到定义设置为 alt + d。从菜单首选项 > 键绑定-用户。然后添加以下 JSON。

[
    { "keys": ["alt+d"], "command": "goto_definition" }
]
于 2013-08-26T17:13:49.897 回答
23

如果您想查看如何进行正确的定义,请进入 Sublime Text->Preferences->Key Bindings - Default 并搜索您要覆盖的命令。

{ "keys": ["f12"], "command": "goto_definition" },
{ "keys": ["super+alt+down"], "command": "goto_definition" }

这两个显示在我的默认值中。

在 Mac 上,我复制了第二个以覆盖。

在 Sublime Text -> Preferences -> Key Bindings - 用户我添加了这个

/* Beginning of File */

[
    {
        "keys": ["super+shift+i"], "command": "goto_definition" 
    }
]

/* End of File */

这将它绑定到 mac 上的 Command + Shift + 1 组合。

于 2013-11-04T16:37:32.617 回答
8

在 Mac 上,您必须自己设置键绑定。只需前往

Sublime --> Preference --> Key Binding - User  

并输入以下内容:

{ "keys": ["shift+command+m"], "command": "goto_definition" }

这将启用键绑定Shift + Command + M以启用 goto 定义。当然,您可以将键绑定设置为您想要的任何内容。

于 2016-05-08T19:01:32.810 回答
4

ctrl != 在 windows 和 linux 机器上超级。

如果“Goto Definition”的 F12 版本产生多个文件的结果,“ctrl + shift + click”版本可能无法正常工作。我在使用 GoSublime 包查看 golang 项目时发现了该错误。

于 2013-04-27T11:07:14.833 回答
0

我正在使用 Sublime 便携式版本(适用于 Windows),而这个(将鼠标图放在SublimeText\Packages\User文件夹中)对我不起作用。

我必须将鼠标映射文件放在SublimeText\Data\Packages\User文件夹中才能使其工作,SublimeText我的便携式版本的安装目录在哪里。 Data\Packages\User也是我找到键盘映射文件的地方。

于 2016-07-31T00:30:48.643 回答