Luhur 3 - Tetapkan Peta kunci untuk fungsi Definisi Goto


143

Saya ingin membuat pintasan gaya Eclipse Ctrl+ MouseClickuntuk membuka fungsi / metode. Sublime Text 3 sudah memiliki fungsi ini dipanggil goto_definitiontetapi terikat untuk F12.

Tapi saya tidak yakin bagaimana cara membuat ikatan ini. Saya mencari di sini untuk dokumentasi tetapi terlalu rumit. Bisakah Anda membantu saya dengan pengikatan kunci sederhana ini?

Sunting: Mengikuti artikel ini saya disuruh melakukan ini: http://webtempest.com/better-definition-navigation-in-sublime-text-3/

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

Ini sepertinya tidak berhasil, ctrl+ shift+ clicktidak mengeksekusi apa pun.


3
superadalah kunci windows untuk Windows dan Linux dan kunci perintah untuk OS X, bukan kontrol. Coba itu dan lihat apakah Anda mendapatkan perilaku yang Anda inginkan.
skuroda

Jawaban:


244

Bagi siapa pun yang ingin menetapkan definisi goto gaya Eclipse, Anda perlu membuat .sublime-mousemapfile di Userfolder Sublime .

Windows - buat Default (Windows).sublime-mousemapdi%appdata%\Sublime Text 3\Packages\User

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

Mac - buat Default (OSX).sublime-mousemapdi~/Library/Application Support/Sublime Text 3/Packages/User

Sekarang buka file itu dan letakkan konfigurasi berikut di dalam

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

Anda dapat mengubah modifierskunci sesuka Anda.


Sejak Ctrl- button1pada Windows dan Linux digunakan untuk beberapa pilihan, menambahkan tombol pengubah kedua seperti Altmungkin ide yang baik jika Anda ingin menggunakan fitur:

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

Atau, Anda dapat menggunakan tombol kanan mouse ( button2) dengan Ctrlsendirian, dan tidak mengganggu fungsi bawaan.


4
Ini sepertinya jawaban yang benar, tetapi saya melakukan semua yang Anda katakan dan masih Tidak berfungsi, saya ctrl+ clickdan tidak melakukan apa-apa, saya mendapatkan kesalahanUnable to parse binding
Kivylius

sudahkah Anda memeriksa nama file konfigurasi? dapatkah Anda mengirim tangkapan layar kesalahan di suatu tempat?
Boris Brdarić

Adakah yang tahu bagaimana Anda mengklik kanan untuk ini? Saya dapat menambahkan file menu Context.sublime perintah tetapi tidak tahu bagaimana cara mengirimkan argumen untuk teks yang saat ini dipilih ... Atau baris ... Saya mencari yang baik ketika mencoba mencari dokumentasi (dan memang mencoba "args": "drag_select") tetapi tidak bisa mengetahuinya. Saya lebih suka mengklik kanan dan melompat ke definisi meskipun ini bekerja dengan baik! Terima kasih.
Tom

Bisakah saya juga mengikat tombol enter untuk ini sehingga saya tidak perlu menekannya secara manual setiap kali saya ctrl + klik?
user3388884

@ BorisSamardžija, juga bagaimana cara membuat skrip di atas mencari definisi fungsi dalam file saya saat ini daripada melompat ke file eksternal lainnya.
Alexander Solonik

90

Untuk mengatur pergi ke definisi ke alt + d. Dari Menu Preferences> Bindings-Pengguna Utama. Dan kemudian tambahkan JSON berikut.

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

1
Tidak yakin mengapa saya memilih, tetapi solusi ini berfungsi dengan baik untuk saya di Sublime 3.
mbokil

9
Anda mungkin downvoted karena pertanyaan awal bertanya "Saya ingin membuat gaya shorcut Ctrl + MouseClick Eclipse untuk membuka fungsi / metode". Saya menemukan jawaban Anda berguna karena saya tidak tertarik dengan versi pintasan mouse, jadi saya sudah ter-upgrade. :)
Charles Roper

1
sepertinya pilihan yang lebih baik daripada cmd + opt + down
uday

Dimungkinkan untuk menggunakan button1daripada d... jadi, kami punya seperti"alt" + "button"
IROEGBU

22

Jika Anda ingin melihat cara melakukan definisi yang tepat, buka Sublime Text-> Preferences-> Bindings Utama - Default dan cari perintah yang ingin Anda timpa.

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

Itu adalah dua yang ditampilkan di Default saya.

Di Mac saya menyalin yang kedua untuk menimpanya.

dalam Teks Luhur -> Preferensi -> Binding Kunci - Pengguna saya menambahkan ini

/* Beginning of File */

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

/* End of File */

Ini mengikatnya ke kombinasi Command + Shift + 1 pada mac.


6

Pada mac Anda harus mengatur keybinding sendiri. Cukup buka

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

dan masukan yang berikut ini:

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

Ini akan memungkinkan pengikatan tombol Shift + Command + Muntuk mengaktifkan definisi goto. Anda dapat mengatur pengikat tombol untuk apa pun yang Anda inginkan tentu saja.


4

ctrl! = super pada mesin windows dan linux.

Jika versi F12 "Definisi Goto" menghasilkan hasil beberapa file, versi "ctrl + shift + klik" mungkin tidak berfungsi dengan baik. Saya menemukan bug itu ketika melihat proyek golang dengan paket GoSublime.


1
CMD + SHIFT + MOUSE1 tidak berfungsi! apa sintaks yang tepat untuk melakukan klik pada con GoTo Definition?
Magico

@Magico Memerlukan GoSublime untuk menginstal dan itu hanya dapat berfungsi untuk proyek Golang. GoSublime: Definisi Godoc / Goto ctrl+dot,ctrl+g atau ctrl+shift+left-clickdi Windows. Ganti ctrl sebagai perintah di Mac.
Ivan Chau

0

Saya menggunakan versi portabel Sublime (untuk Windows) dan ini (menempatkan mousemap di SublimeText\Packages\Userfolder) tidak berfungsi untuk saya.

Saya harus meletakkan file mousemap di SublimeText\Data\Packages\Userfolder untuk membuatnya berfungsi di mana SublimeTextdirektori instalasi untuk versi portabel saya. Data\Packages\UserDi sinilah saya menemukan file keymap juga.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.