Sublime 3-関数Goto定義のキーマップを設定する


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
superWindowsおよびLinuxのWindowsキーであり、OS Xのコマンドキーであり、コントロールではありません。それを試して、あなたが望む振る舞いをするかどうか確かめてください。
skuroda

回答:


244

Eclipseスタイルのgoto定義を設定したい場合は.sublime-mousemap、Sublime Userフォルダーにファイルを作成する必要があります。

Windowsは-作成Default (Windows).sublime-mousemap%appdata%\Sublime Text 3\Packages\User

Linuxは-作成Default (Linux).sublime-mousemap~/.config/sublime-text-3/Packages/User

マックは-作成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
Kivylius

設定ファイル名を確認しましたか?エラーのスクリーンショットをどこかに投稿できますか?
BorisBrdarić2013年

これを右クリックする方法を誰かが知っていますか?コマンドをContext.sublime-menuファイルに追加することはできましたが、現在選択されているテキストの引数を渡す方法を理解できませんでした...または行...ドキュメントを見つけようとしているときに、良いものを探しました(そして "args": "drag_select"を試しました)しかしそれを理解することができませんでした。私は右クリックして定義にジャンプしたいのですが、これはうまくいきます!ありがとう。
トム

Enterキーをこれにバインドして、Ctrl +クリックするたびに手動で押す必要がないようにできますか?
user3388884 2014

@BorisSamardžija、上記のスクリプトで他の外部ファイルにジャンプするのではなく、現在のファイルで関数定義を探す方法も教えてください。
Alexander Solonik

90

定義に移動するには、alt + dに定義に移動します。メニューの設定>キーバインド-ユーザーから。次に、次のJSONを追加します。

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

1
私が降り、なぜ特定の投票が、この解決策は崇高3に私のために完璧に働いているではない
mbokil

9
元の質問で「EclipseスタイルのショートカットCtrl + MouseClickを作成して、関数/メソッドを開く」と尋ねられたため、おそらく反対票を投じたでしょう。私はマウスショートカットバージョンに興味がないので、あなたの答えは役に立ったと思ったので、賛成しました。:)
Charles Roper

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" }

これらは、私のデフォルトに表示される2つです。

Macでは、2番目をコピーして上書きしました。

Sublime Text-> Preferences-> Key Bindings-User私がこれを追加した

/* Beginning of File */

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

/* End of File */

これにより、MacでCommand + Shift + 1の組み合わせにバインドされます。


6

Macでは、自分でキーバインドを設定する必要があります。単に行く

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

以下を入力します。

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

これにより、のキーバインドが有効にShift + Command + Mなり、goto定義が有効になります。もちろん、キーバインドを好きなように設定できます。


4

WindowsおよびLinuxマシンではctrl!= super。

「Goto Definition」のF12バージョンが複数のファイルの結果を生成する場合、「Ctrl + Shift +クリック」バージョンは適切に機能しない可能性があります。GoSublimeパッケージでgolangプロジェクトを表示すると、そのバグが見つかりました。


1
CMD + SHIFT + MOUSE1は機能しません!正しいGoTo定義をクリックする適切な構文は何ですか?
Magico 2013年

@Magico GoSublimeのインストールが必要で、Golangプロジェクトでのみ機能する場合があります。GoSublime:Godoc / Goto Definition ctrl+dot,ctrl+gまたはctrl+shift+left-clickWindows。Macでコマンドとしてのctrlを置き換えます。
Ivan Chau

0

私はSublimeポータブルバージョン(Windows用)を使用していSublimeText\Packages\Userますが、これ(マウスマップをフォルダーに配置)は機能しませんでした。

マウスマップファイルをSublimeText\Data\Packages\Userフォルダに配置して動作させる必要がSublimeTextありました。ポータブルバージョンのインストールディレクトリはどこですか。 Data\Packages\Userキーマップファイルも見つけた場所です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.