Sublime 3 - Goto Definition fonksiyonu için Set anahtar haritası


143

Bir Eclipse stil kısayolu Ctrl+ MouseClickişlev / yöntem açmak için oluşturmak istiyorum . Sublime Text 3 zaten denilen bu işleve sahiptir, goto_definitionancak buna bağlıdır F12.

Ancak bu bağlamayı nasıl oluşturacağımdan emin değilim. Burada dokümantasyon için baktım ama çok karmaşıktı. Bu basit anahtar ciltlemede bana yardım edebilir misiniz?

Düzenleme: Bu makalenin ardından bunu yapmam söylendi: http://webtempest.com/better-definition-navigation-in-sublime-text-3/

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

Bu işe yaramıyor gibi görünüyor, ctrl+ shift+ clickhiçbir şey yürütmüyor.


3
superWindows ve Linux için windows anahtarı ve OS X için komut anahtarı, kontrol değil. Bunu deneyin ve istediğiniz davranışı alıp almadığınızı görün.
— skuroda

Yanıtlar:


244

Eclipse stili goto tanımını ayarlamak isteyen herkes için .sublime-mousemapSublime Userklasöründe dosya oluşturmanız gerekir .

Pencereler - yaratmak Default (Windows).sublime-mousemapiçinde%appdata%\Sublime Text 3\Packages\User

Linux - oluştur Default (Linux).sublime-mousemapiçinde~/.config/sublime-text-3/Packages/User

Mac - oluştur Default (OSX).sublime-mousemapiçinde~/Library/Application Support/Sublime Text 3/Packages/User

Şimdi bu dosyayı açın ve aşağıdaki yapılandırmayı içine yerleştirin

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

modifiersAnahtarı istediğiniz gibi değiştirebilirsiniz .


Yana Ctrl- button1gibi Windows ve Linux üzerinde ikinci bir değiştirici tuşa ekleyerek, birden fazla seçim için kullanılan Alther iki özelliklerini kullanmak istiyorsanız bu iyi bir fikir olabilir:

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

Alternatif olarak, sağ fare düğmesini ( button2) Ctrltek başına kullanabilir ve yerleşik işlevlere müdahale edemezsiniz.


4
Bu doğru cevap gibi görünüyor, ama söylediğin ve hala söylediğin her şeyi yaptım ctrlclickUnable to parse binding
— Çalışmıyorum

yapılandırma dosya adını kontrol ettiniz mi? Bir yerde hata ekran görüntüsü gönderebilir misiniz?
— Boris Brdarić

Bunun için nasıl sağ tıklayacağınızı bilen var mı? Komutu Context.sublime-menu dosyasına ekleyebildim, ancak şu anda seçili olan metnin argümanlarını nasıl geçirebileceğimi anlayamadım ... Veya satır ... Belgeleri bulmaya çalışırken iyi bir şey aradım (ve "args" ı denedi: "drag_select") ama çözemedi. Bu harika çalışıyor olsa sağ tıklayın ve tanım atlamak istiyorum! Teşekkürler.
— Tom

Enter tuşunu da buna bağlayabilir miyim, böylece her ctrl + tıklattığımda el ile basmam gerekmez mi?
— user3388884

@ BorisSamardžija, ayrıca yukarıdaki komut dosyasını diğer harici dosyalara atlamak yerine geçerli dosyamdaki işlev tanımını nasıl arayabilirim?
— Alexander Solonik

90

Ayarlamak için alt + d tanımına gidin. Menü Tercihleri> Anahtar Bağlantıları-Kullanıcı'dan. Ve sonra aşağıdaki JSON'u ekleyin.

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

1

9
Muhtemelen aşağı inildiniz çünkü orijinal soru "İşlevi / yöntemi açmak için bir Eclipse stil kısayolu Ctrl + MouseClick oluşturmak istiyorum" diye sordu. Cevabınızı fare kısayol sürümüyle ilgilenmediğim için yararlı buldum, bu yüzden kaldırdım. :)
— Charles Roper

1
cmd + opt +
— down'dan

button1Bunun yerine kullanmak mümkün d... yani, biz gibi"alt" + "button"
— IROEGBU

22

Düzgün bir tanımın nasıl yapıldığını görmek istiyorsanız, Yüce Metin-> Tercihler-> Anahtar Bağlamaları - Varsayılan'a gidin ve geçersiz kılmak istediğiniz komutu arayın.

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

Bunlar benim Varsayılanımda gösterilen iki.

Mac'te ikincisini geçersiz kılmak için kopyaladım.

Sublime Text -> Tercihler -> Anahtar Bağlamaları - Kullanıcı Bunu ekledim

/* Beginning of File */

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

/* End of File */

Bu, mac'ta Command + Shift + 1 kombinasyonuna bağlar.


6

Bir Mac'te kendiniz tuş bağlama ayarlamanız gerekir. Sadece

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

ve aşağıdakileri girin:

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

Bu, Shift + Command + Mgoto tanımını etkinleştirmek için tuşunun bağlanmasını sağlar. Tuş takımını elbette istediğiniz herhangi bir şeye ayarlayabilirsiniz.


4

ctrl! = windows ve linux makinelerinde süper.

"Goto Definition" ın F12 sürümü birden fazla dosyanın sonuçlarını üretirse, "ctrl + shift + click" sürümü iyi çalışmayabilir. GoSublime paketi ile golang projesini görüntülerken bu hatayı buldum.


1
CMD + ÜST KARAKTER + FARE1 çalışmıyor! doğru Go sintox gitmek için tıklayın toto tanımlamak?
— Magico

@ Magico Gerekli GoSublime kurulumu ve yalnızca Golang projesi için kullanılabilir. GoSublime: Godoc / Goto Definition ctrl+dot,ctrl+g veya ctrl+shift+left-clickWindows üzerinde. Mac'te ctrl komutunu değiştirin.
— Ivan Chau

0

Sublime taşınabilir sürümünü kullanıyorum (Windows için) ve bu (fare haritasını SublimeText\Packages\Userklasöre yerleştirerek ) benim için çalışmadı.

Taşınabilir sürümüm için kurulum dizininin SublimeText\Data\Packages\Userçalışabilmesi için mousemap dosyasını klasöre yerleştirmek zorunda kaldım SublimeText. Data\Packages\Userkeymap dosyasını da bulduğum yer.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.