I want to create an Eclipse style shortcut Ctrl+MouseClick to open the function/method. Sublime Text 3 has already this function called goto_definition
but it is bound to F12.
But I'm not sure how to create this binding. I looked here for documentation but it was too complex. Can you one help me out with this simple key binding?
Edit: Following this article I was told to do this: http://webtempest.com/better-definition-navigation-in-sublime-text-3/
[
{
"button": "button1",
"count": 1,
"modifiers": ["super", "shift"],
"press_command": "drag_select",
"command": "goto_definition"
}
]
This doesn't seem to work, ctrl+shift+click executes nothing.
If you want to see how to do a proper definition go into Sublime Text->Preferences->Key Bindings - Default and search for the command you want to override.
Those are two that show in my Default.
On Mac I copied the second to override.
in Sublime Text -> Preferences -> Key Bindings - User I added this
This binds it to the Command + Shift + 1 combination on mac.
ctrl != super on windows and linux machines.
If the F12 version of "Goto Definition" produces results of several files, the "ctrl + shift + click" version might not work well. I found that bug when viewing golang project with GoSublime package.
For anyone else who wants to set Eclipse style goto definition, you need to create
.sublime-mousemap
file in SublimeUser
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
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:Alternatively, you could use the right mouse button (
button2
) with Ctrl alone, and not interfere with any built-in functions.To set go to definition to alt + d. From the Menu Preferences > Key Bindings-User. And then add the following JSON.
I'm using Sublime portable version (for Windows) and this (placing the mousemap in
SublimeText\Packages\User
folder) did not work for me.I had to place the mousemap file in
SublimeText\Data\Packages\User
folder to get it to work whereSublimeText
is the installation directory for my portable version.Data\Packages\User
is where I found the keymap file as well.On a mac you have to set keybinding yourself. Simply go to
and input the following:
This will enable keybinding of
Shift + Command + M
to enable goto definition. You can set the keybinding to anything you would like of course.