Підняте 3 - Встановіть ключову карту функції Goto Definition


143

Я хочу створити ярлик у стилі 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нічого не виконує.


3
super- це клавіша Windows для Windows та Linux та командна клавіша для OS X, а не контроль. Спробуйте це і подивіться, чи отримуєте ви потрібну поведінку.
skuroda

Відповіді:


244

Для всіх, хто хоче встановити перехід до визначення стилю Eclipse, вам потрібно створити .sublime-mousemapфайл у Userпапці Sublime .

Windows - створити Default (Windows).sublime-mousemapв%appdata%\Sublime Text 3\Packages\User

Linux - створити Default (Linux).sublime-mousemapв~/.config/sublime-text-3/Packages/User

Mac - створити Default (OSX).sublime-mousemapв~/Library/Application Support/Sublime Text 3/Packages/User

Тепер відкрийте цей файл і помістіть всередину таку конфігурацію

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

Ви можете змінити modifiersключ, як вам подобається.


Оскільки Ctrl- button1у Windows та Linux використовується для декількох виборів, додавання другого ключа модифікатора, як-от, Altможе бути хорошою ідеєю, якщо ви хочете використовувати обидві функції:

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

Крім того, ви можете користуватися правою кнопкою миші ( button2) Ctrlокремо і не заважати будь-яким вбудованим функціям.


4
Це здається правильною відповіддю, але я зробив усе, що ви сказали, і досі це не працює, я ctrl+ clickі його нічого не роблю, я отримую помилкуUnable to parse binding
Ківілій

Ви перевірили ім'я файлу конфігурації? Ви можете десь розмістити скріншот помилок?
Борис Брдарич

Хто-небудь знає, як ви праву клацніть для цього? Я зміг додати до файлу меню Context.sublime команду, але не зміг зрозуміти, як передавати аргументи для вибраного тексту ... Або рядок ... Я добре шукав документацію, намагаючись знайти документацію (і спробував "args": "drag_select"), але не зміг цього зрозуміти. Я скоріше клацніть правою кнопкою миші та перейдіть до визначення, хоча це чудово працює! Дякую.
Том

Чи можу я також прив’язати до цього клавішу введення, щоб мені не довелося натискати її вручну кожного разу, коли я ctrl + click?
user3388884

@ BorisSamardžija, також як я змушую вищезазначений сценарій шукати визначення функції в моєму поточному файлі, а не переходити до інших зовнішніх файлів.
Олександр Солоник

90

Щоб встановити перехід до визначення на alt + d. У меню "Налаштування"> "Ключові прив'язки - користувач". А потім додайте наступний JSON.

[
    { "keys": ["alt+d"], "command": "goto_definition" }
]


9
Ви, ймовірно, неприйнятні, тому що в оригінальному запитанні "Я хочу створити ярлик у стилі Eclipse Ctrl + MouseClick, щоб відкрити функцію / метод". Я вважаю вашу відповідь корисною, оскільки мене не цікавить версія ярлика миші, тому я підтримав позицію. :)
Чарльз Ропер

1
видається кращим варіантом, ніж cmd + opt + down
uday

Можливо використовувати button1замість d... так, у нас як"alt" + "button"
IROEGBU

22

Якщо ви хочете побачити, як зробити правильне визначення, перейдіть до тексту Sublime Text-> Preferences-> Key Bindings - Default за замовчуванням та знайдіть команду, яку ви хочете змінити.

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

Це два, які відображаються в моєму замовчуванні.

На Mac я скопіював друге, щоб переоцінити.

у піднесеному тексті -> Налаштування -> Прив'язки клавіш - Користувач я додав це

/* Beginning of File */

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

/* End of File */

Це пов'язує його з комбінацією Command + Shift + 1 на mac.


6

На mac вам потрібно встановити прив'язку клавіш самостійно. Просто перейдіть до

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

і введіть наступне:

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

Це дозволить Shift + Command + Mввести клавіші для включення визначення goto. Ви можете встановити прив'язку клавіш до всього, що хочете, звичайно.


4

ctrl! = супер на Windows та Linux машинах.

Якщо версія F12 "Goto Definition" створює результати декількох файлів, версія "ctrl + shift + click" може не працювати. Я виявив цю помилку під час перегляду проекту golang з пакетом GoSublime.


1
CMD + SHIFT + MOUSE1 не працює! який правильний синтакс, щоб натиснути на Con GoTo Definition?
Magico

@Magico Необхідна установка GoSublime, і вона може працювати лише для Golang-проекту. GoSublime: визначення Godoc / Goto ctrl+dot,ctrl+g або ctrl+shift+left-clickв Windows. Замініть ctrl як команду на Mac.
Іван Чау

0

Я використовую портативну версію Sublime (для Windows), і ця (розміщення миші в SublimeText\Packages\Userпапці) для мене не працювала.

Мені довелося помістити файл миші в SublimeText\Data\Packages\Userпапку, щоб він працював там, де SublimeTextзнаходиться інсталяційний каталог для моєї портативної версії. Data\Packages\Userтам же я знайшов файл ключової карти.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.