Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
164
Help us understand the problem. What is going on with this article?
@hajimenbou

sublime text3でeclipseのF3のような関数ジャンプキーバインドを設定する

More than 5 years have passed since last update.

sublime text3でPHPの開発をしているのですが、
eclipseやnet beansにあったF3やctrl+左クリックで関数の宣言元にジャンプできる機能がないかなと思って
色々と探してみたらできたのでメモしておきます。

sublime text3からの新機能であるgoto_definitionというコマンドを設定すればよい模様。
デフォルトではF12に設定されていて、プロジェクト内検索しか対応していないようですが、使えそうです。

メニューの Preferences > KeyBindings User を開いて以下を追記。

// F3で関数の宣言元にジャンプ
{ "keys": ["f3"], "command": "goto_definition" },
// alt+左で戻る
{ "keys": ["alt+left"], "command": "jump_back" },
// alt+右で戻ったのをまた進める
{ "keys": ["alt+right"], "command": "jump_forward" },

再起動せずに即時反映されます。

ctrlを押しながら関数名をマウスクリックする時もF3と同じ動きをさせたい

マウスのキーバインドはメニューから設定ファイルを開くようになっていないっぽいので悩んだのですが
偉大なるstackoverflowに同じような投稿があったので参考にしました。

参考
Sublime 3 - Set Key map for function Goto Definition

Preferences > Browse Packagesで設定ファイルが入っているディレクトリを開いて
更にUserディレクトリの中にDefault (Windows).sublime-mousemapというファイルを作成し、
中に以下の設定を書くと反映されました。

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

macだとDefault (OSX).sublime-mousemap
linuxだとDefault (Linux).sublime-mousemapというファイル名になるようです(未確認)

また、ctrl+clickにすると、sublime textの魅力の一つであるカーソルを複数置く機能とかぶってしまうので
自分は"modifiers": ["ctrl"],の部分を"modifiers": ["ctrl", "shift"],として
ctrl+shift+clickでジャンプするように設定しました。

ついでに

他に設定しているeclipse風ショートカットは以下
Preferences > KeyBindings Userに追記

// 上の行と入れ替える
{ "keys": ["alt+up"], "command": "swap_line_up" },
// 下の行と入れ替える
{ "keys": ["alt+down"], "command": "swap_line_down" },
// 行複製 (windowsだとwindows側のグラフィックオプションのホットキーを無効にしないと画面が回転します)
{ "keys": ["ctrl+alt+down"], "command": "duplicate_line" },
// ファイル検索&置換
{ "keys": ["ctrl+h"], "command": "show_panel", "args": {"panel": "find_in_files"} },
// 行削除
{ "keys": ["ctrl+d"], "command": "run_macro_file", "args": {"file": "Packages/Default/Delete Line.sublime-macro"} },

// ctrl+dを行削除に設定したので、デフォルトにあった文字列選択はctrl+shift+dに設定
{ "keys": ["ctrl+shift+d"], "command": "find_under_expand" },

ctrl+マウススクロールでフォントサイズが変更されるのが面倒だったのでその機能を切る
Default (Windows).sublime-mousemap内に追記

{ "button": "scroll_down", "modifiers": ["ctrl"], "command": "null" },
{ "button": "scroll_up", "modifiers": ["ctrl"], "command": "null" },

参考
SublimeText2でマウスでの動作の設定を変更する

164
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
164
Help us understand the problem. What is going on with this article?