LoginSignup
17
17

More than 5 years have passed since last update.

【まとめ】Sublime TextをEclipse風キーバインドに変更するTips

Last updated at Posted at 2015-12-06

はじめに

みなさん、Eclipseは好きですか?
世間ではIntelliJ IDEAの利用拡大が著しいですが、私はEclipseも大好きです!

さてそんな私ですが最近はSublime Textを用いてコーディングをすることが増えてきています。
しかしキー操作がSublime TextとEclipseの間で上手く頭を切り分けられず、SublimeTextなのにEclipseのショートカットキーを使ってしまって上手く動かない、なんて問題も多く起こっています。

エディタを複数用いる時に発生する悩みの一つかと思いますし、みなさんも困っていませんか?

その解決案として、わたしはSublime TextのキーバインドをEclipse風に変更して利用しています。
そうしたSublime TextのキーバインドをEclipse風のショートカットキーに変更する定義を調査して、ナレッジが溜まってきたので共有します。

環境

Sublime Text3 - Build 3083
(おそらく2系でも動くと思いますが、未検証です)

キーバインドの設定方法

SublimeTextにおけるキーバインドの設定ファイルは、メニューの以下のところを押下すると開くことができます。

  • Perferences -> Key Bindings - User
  • 基本設定 -> キーバインド - ユーザ

ショートカットキー設定ファイル

  • オリジナルはこちらで管理していますので、ぜひ参考にして下さい。
  • どの設定がどのショートカットに紐づくかはコメントに細かく記載したので、そちらをご参照ください。

  • SublimeTextのショートカットに元から存在するキーバインドと重複している場合は、shiftを付きで新たに設定しています。
    そのため他の人がカスタマイズしたSublimeTextに触る場合も、違和感なく使えるよう工夫しています!
    ※それらは、「eclipseにはない」のコメントを必ずつけて区別できるようにしています。

Default(Windows).sublime-keymap
[
    //  --------------------------------------------------------------------
    // Eclipse化キーバインド
    // ---------------------------------------------------------------------
    // alt+左で戻る
    { "keys": ["alt+left"], "command": "jump_back" }
    // alt+右で戻ったのをまた進める
    ,{ "keys": ["alt+right"], "command": "jump_forward" }
    // 行削除
    ,{ "keys": ["ctrl+d"], "command": "run_macro_file", "args": {"file": "Packages/Default/Delete Line.sublime-macro"} }
    // 行番号選択
    ,{ "keys": ["ctrl+l"], "command": "show_overlay", "args": {"overlay": "goto", "text": ":"} }
    // 名前の変更(厳密には選択範囲と同一の文字列を全て選択)
    ,{ "keys": ["shift+alt+r"], "command": "find_all_under" }
    // 選択中単語の次を検索
    ,{ "keys": ["ctrl+k"], "command": "find_under" }
    ,{ "keys": ["ctrl+shift+k"], "command": "find_under_prev" }
    // 行の入れ替え
    ,{ "keys": ["alt+up"], "command": "swap_line_up" }
    ,{ "keys": ["alt+down"], "command": "swap_line_down" }
    // 下行と文字を連結させる
    ,{ "keys": ["ctrl+alt+j"], "command": "join_lines" }
    // 行複製
    ,{ "keys": ["ctrl+alt+down"], "command": "duplicate_line" }
    ,{ "keys": ["ctrl+alt+up"], "command": "duplicate_line" }
    // リソース検索
    ,{ "keys": ["shift+ctrl+r"], "command": "show_overlay", "args": {"overlay": "goto", "show_files": true} }
    // 大文字 <-> 小文字変換
    ,{ "keys": ["shift+ctrl+y"], "command": "lower_case" }
    ,{ "keys": ["shift+ctrl+x"], "command": "upper_case" }
    // インデント揃え
    ,{ "keys": ["ctrl+shift+f"], "command": "reindent" , "args": {"single_line": false}}
    // コメントアウトの切り替え(Eclipseにもあるコメントアウトするctrl+/, ctrl+shitt+/ は標準ショートカット)
    ,{ "keys": ["ctrl+shift+c"], "command": "toggle_comment", "args": { "block": false } }
    // クイック・アウトライン
    ,{ "keys": ["ctrl+o"], "command": "show_overlay", "args": {"overlay": "goto", "text": "@"} }
    // 全て保存する
    ,{ "keys": ["ctrl+shift+s"], "command": "save_all" }
    // すべて閉じる
    ,{ "keys": ["shift+ctrl+f4"], "command": "close_all" }
    ,{ "keys": ["shift+ctrl+w"], "command": "close_all" }
    // F3で関数の宣言元にジャンプ
    ,{ "keys": ["f3"], "command": "goto_definition" }
    // リフレッシュ(sublimeは基本オートリロード)
    ,{"keys": ["f5"], "command": "revert"}
    // 実行(ビルド)
    ,{ "keys": ["ctrl+f11"], "command": "build" }

    // ---------------------Sublime Text3 Orifinal Shortcut Key の割当て ---------------------------
    // ※元のショートカットが強力なものがある場合は、shiftをつける、またはaltを外して利用できるようにキーバインド新たに設定
    // ---------
    // Eclipseのショートカットではない(ctrl+dを行削除に設定したので、デフォルトにあった選択範囲の文字列をスタック選択)
    ,{ "keys": ["shift+alt+d"], "command": "find_under_expand" }
    // Eclipseのショートカットではない(ctrl+oをクイック・アウトラインを設定したので、デフォルトにあったファイルを開く)
    ,{ "keys": ["ctrl+shift+o"], "command": "prompt_open_file" }
    // Eclipseのショートカットではない(ctrl+alt+up,ctrl+alt+downに行複製を設定したので、デフォルトにあった矩形選択)
    ,{ "keys": ["ctrl+up"], "command": "select_lines", "args": {"forward": false} }
    ,{ "keys": ["ctrl+down"], "command": "select_lines", "args": {"forward": true} }

    //  -----------------------------------packageで補ったところ-----------------------------------
    // [ctrl+q] https://github.com/khrizt/GotoLastEdit
]

その他のおすすめキーバインド

  • Eclipseと直接関係無いですが、その他私のおすすめキーバインドです。
  • 下記も同ファイルに追記すると複数ファイルを編集する時や、外部ディスプレイなどを利用している場合に効果を発揮します!
おすすめキーバインド
    // タブ移動を横方向に移動
    ,{ "keys": ["ctrl+tab"], "command": "next_view" }
    ,{ "keys": ["ctrl+shift+tab"], "command": "prev_view" }
    // 開いているファイルのディレクトリをエクスプローラで開く
    ,{ "keys": ["ctrl+e"], "command": "open_dir"
        , "args": {
            "dir": "$file_path", "file": "$file_name"
        }
    }
    // ショートカット一覧を表示(実質はこのファイルを表示する)…ちょっと無理やり
    ,{ "keys": ["ctrl+shift+l"], "command": "open_file"
        ,"args":
        {
            "file": "${packages}/User/Default ($platform).sublime-keymap",
            "contents": "[\n\t$0\n]\n"
        }
    }
    // ディスプレイ3分割
    ,{
        "keys": ["alt+shift+6"], //ショートカットキー
        "command": "set_layout", //コマンド
        "args":
        {
            "rows": [0.0, 0.5, 1.0], //列方向の分割位置
            "cols": [0.0, 0.5, 1.0], //行方向の分割位置
            "cells": [[0,0,1,2], [1,0,2,1], [1,1,2,2]] //画面の構成
        }
    }
    ,{
        "keys": ["alt+shift+7"], //ショートカットキー
        "command": "set_layout", //コマンド
        "args":
        {
            "rows": [0.0, 0.5, 1.0], //列方向の分割位置
            "cols": [0.0, 0.5, 1.0], //行方向の分割位置
            "cells": [[0,0,1,2], [1,0,2,1], [1,1,2,2]] //画面の構成
        }
    }

参考

まとめ

  • Eclipseで習得したショートカットスキル資産をSublimeTextに転用することで仕事を捗らせる!
  • SublimeTextに元からあるショートカットは尊重して残す工夫
  • その他キーバインドもおススメです!
17
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
17