Sublime 3 - Legen Sie die Tastenkarte für die Funktion Gehe zu Definition fest


143

Ich möchte eine Verknüpfung im Eclipse-Stil Ctrl+ erstellen MouseClick, um die Funktion / Methode zu öffnen. Sublime Text 3 hat diese Funktion bereits aufgerufen goto_definition, ist aber daran gebunden F12.

Ich bin mir jedoch nicht sicher, wie ich diese Bindung erstellen soll. Ich habe hier nach Dokumentation gesucht , aber sie war zu komplex. Kannst du mir bei dieser einfachen Schlüsselbindung helfen?

Bearbeiten: Nach diesem Artikel wurde mir gesagt, dass ich dies tun soll: http://webtempest.com/better-definition-navigation-in-sublime-text-3/

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

Dies scheint nicht zu funktionieren, ctrl+ shift+ clickführt nichts aus.


3
superist die Windows-Taste für Windows und Linux und die Befehlstaste für OS X, nicht die Steuerung. Versuchen Sie das und sehen Sie, ob Sie das gewünschte Verhalten erhalten.
Skuroda

Antworten:


244

Für alle anderen, die die Definition des Eclipse-Stils festlegen möchten, müssen Sie eine .sublime-mousemapDatei im Sublime- UserOrdner erstellen .

Windows - erstellen Default (Windows).sublime-mousemapin%appdata%\Sublime Text 3\Packages\User

Linux - erstellen Default (Linux).sublime-mousemapin~/.config/sublime-text-3/Packages/User

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

Öffnen Sie nun diese Datei und fügen Sie die folgende Konfiguration ein

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

Sie können den modifiersSchlüssel nach Belieben ändern .


Da Ctrl- button1unter Windows und Linux für mehrere Auswahlen verwendet wird, ist das Hinzufügen eines zweiten Modifikatorschlüssels wie Alteine gute Idee, wenn Sie beide Funktionen verwenden möchten:

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

Alternativ können Sie die rechte Maustaste ( button2) Ctrlalleine verwenden und keine integrierten Funktionen beeinträchtigen.


4
Dies scheint die richtige Antwort zu sein, aber ich habe alles getan, was du gesagt hast und trotzdem funktioniert es nicht. Ich bin ctrl+ clickund es tut nichts. Ich bekomme einen FehlerUnable to parse binding
Kivylius

Haben Sie den Namen der Konfigurationsdatei überprüft? Kannst du irgendwo einen Fehler-Screenshot posten?
Boris Brdarić

Weiß jemand, wie Sie dafür mit der rechten Maustaste klicken würden? Ich konnte den Befehl zu einer Context.sublime-Menü-Datei hinzufügen, konnte aber nicht herausfinden, wie die Argumente für den aktuell ausgewählten Text übergeben werden sollen ... oder Zeile ... Ich habe nach einer guten Suche gesucht, während ich versucht habe, Dokumentation zu finden (und habe "args": "drag_select" ausprobiert) konnte es aber nicht herausfinden. Ich würde lieber mit der rechten Maustaste klicken und zur Definition springen, obwohl dies großartig funktioniert! Vielen Dank.
Tom

Könnte ich auch die Eingabetaste daran binden, damit ich sie nicht jedes Mal manuell drücken muss, wenn ich Strg + Klick mache?
user3388884

@ BorisSamardžija, auch wie kann ich das obige Skript dazu bringen, nach der Funktionsdefinition in meiner aktuellen Datei zu suchen, anstatt zu anderen externen Dateien zu springen.
Alexander Solonik

90

Zum Einstellen gehen Sie zur Definition auf Alt + D. Über die Menüeinstellungen> Tastenkombinationen-Benutzer. Fügen Sie dann den folgenden JSON hinzu.

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

1
Ich bin mir nicht sicher, warum ich abgewählt wurde, aber diese Lösung funktioniert perfekt für mich auf Sublime 3.
mbokil

9
Sie wurden wahrscheinlich abgelehnt, weil die ursprüngliche Frage lautete: "Ich möchte einen Shorcut im Eclipse-Stil erstellen. Strg + Mausklick, um die Funktion / Methode zu öffnen." Ich fand Ihre Antwort insofern nützlich, als ich nicht an der Maus-Shortcut-Version interessiert bin, also habe ich upvoted. :)
Charles Roper

1
scheint eine bessere Option zu sein als die cmd + opt + down
uday

Möglich zu verwenden button1statt d... also haben wir wie"alt" + "button"
IROEGBU

22

Wenn Sie sehen möchten, wie eine korrekte Definition vorgenommen wird, gehen Sie zu Sublime Text-> Preferences-> Key Bindings - Default und suchen Sie nach dem Befehl, den Sie überschreiben möchten.

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

Das sind zwei, die in meinem Standard angezeigt werden.

Auf dem Mac habe ich die zweite kopiert, um sie zu überschreiben.

in Sublime Text -> Einstellungen -> Tastenkombinationen - Benutzer habe ich dies hinzugefügt

/* Beginning of File */

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

/* End of File */

Dies bindet es an die Kombination Befehl + Umschalt + 1 auf dem Mac.


6

Auf einem Mac müssen Sie die Tastenkombination selbst festlegen. Einfach gehen zu

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

und geben Sie Folgendes ein:

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

Dadurch wird die Tastenkombination Shift + Command + Maktiviert, um die Goto-Definition zu aktivieren. Sie können die Tastenkombination natürlich auf alles einstellen, was Sie möchten.


4

ctrl! = super auf Windows- und Linux-Rechnern.

Wenn die F12-Version von "Gehe zu Definition" Ergebnisse mehrerer Dateien liefert, funktioniert die Version "Strg + Umschalt + Klick" möglicherweise nicht richtig. Ich habe diesen Fehler beim Anzeigen des Golang-Projekts mit dem GoSublime-Paket gefunden.


1
CMD + SHIFT + MOUSE1 funktioniert nicht! Was ist die richtige Sintax, um auf con GoTo Definition zu klicken?
Magico

@Magico Erforderliche GoSublime-Installation und möglicherweise nur für Golang-Projekte. GoSublime: Godoc / Goto Definition ctrl+dot,ctrl+g oder ctrl+shift+left-clickunter Windows. Ersetzen Sie Strg als Befehl auf dem Mac.
Ivan Chau

0

Ich verwende die tragbare Version von Sublime (für Windows) und dies (Platzieren der Mauskarte im SublimeText\Packages\UserOrdner) hat bei mir nicht funktioniert.

Ich musste die Mousemap-Datei in einem SublimeText\Data\Packages\UserOrdner ablegen , damit sie funktioniert. Dort SublimeTextbefindet sich das Installationsverzeichnis für meine tragbare Version. Data\Packages\UserHier habe ich auch die Keymap-Datei gefunden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.