Archives For Sublime Text

Sublime Test 2 Mac-Winショートカットキーdiff ではSublime Text 2をMacで使った場合とWindowsで使った場合のショートカットキーの違いをまとめました。

ここでは、混乱を減らすために、できるだけキーを統一してみようと思います。

一般

機能 Mac Windows
ファイルを開くダイアログ表示 super+o ctrl+alt+o
(ctrl+oはIME on/offとかぶるので)
すべて保存 super+alt+s ctrl+alt+s

カーソル移動・選択

機能 Mac Windows
カーソル移動 (単語単位、前方) ctrl+right ctrl+right
カーソル移動 (単語単位、後方) ctrl+left ctrl+left
選択 (単語単位、前方) ctrl+shift+right ctrl+shift+right
選択 (単語単位、後方) ctrl+shift+left ctrl+shift+right
カーソル追加 (上の行) ctrl+alt+up ctrl+alt+up
カーソル追加 (下の行) ctrl+alt+down ctrl+alt+down
上へ1行スクロール super+up ctrl+up
下へ1行スクロール super+down ctrl+down
カーソル行を画面中央にスクロール ctrl+l ctrl+l

上下1行スクロールはctrl+up/downで統一しようとしたが、Mac側が動かなかった。
上記以外に、Mac標準のEmcas式カーソル移動をWindowsでも使えるようにします。

検索・置換

機能 Mac Windows
前を検索 super+shift+g ctrl+shift+g
カレントワードで次を検索 alt+g alt+g
カレントワードで前を検索 shift+alt+g shift+alt+g
カレントワードで検索してすべて選択 ctrl+alt+g ctrl+alt+g
検索パネルを表示 super+f alt+f
置換パネルを表示 super+alt+f ctrl+alt+f
次を置換 super+alt+e ctrl+alt+e
検索・置換の正規表現をトグル super+alt+r ctrl+alt+r
検索・置換のcase_sensitiveをトグル super+alt+c ctrl+alt+c
検索・置換の単語完全一致をトグル super+alt+w ctrl+alt+w
置換で大文字小文字を保存するか、トグル super+alt+a ctrl+alt+a

Windowsでは、alt+shiftが入力言語切り替えやキーボード切り替えと衝突するので、コントロールパネルから”無効”に設定しておくと良いです。

編集

機能 Mac Windows
行頭まで削除 super+backspace alt+backspace
行末まで削除 ctrl+k ctrl+k
(2ストロークショートカットのトリガーはalt+kに変更)
行末まで削除 super+delete ctrl+delete
ヤンク ctrl+y alt+y
閉じタグ挿入 alt+. alt+.
閉じタグ挿入 super+alt+. ctrl+alt+.
上の行と入れ替え ctrl+super+up ctrl+alt+up
下の行と入れ替え ctrl+super+down ctrl+alt+down
行整列 (case_sensitive) ctrl+f5 ctrl+f5
行整列 (case_insensitive) f5 f5
パラグラフの整形 super+alt+q ctrl+alt+q

ウインドウ・タブ操作

機能 Mac Windows
前のタブに移動 super+alt+left ctrl+alt+left
前のタブに移動 super+shift+[ ctrl+pageup
次のタブに移動 super+alt+r ctrl+alt+right
次のタブに移動 super+alt+right ctrl+pagedown
ウインドウ分割 (縦2等分) super+alt+shift+2 ctrl+alt+shift+2
ウインドウ分割 (縦3等分) super+alt+shift+3 ctrl+alt+shift+3
ウインドウ4分割 (横n等分) super+alt+[1..4] ctrl+alt+[1..4]
ウインドウ4分割 super+alt+5 ctrl+alt+5
全画面表示トグル f11 f11
distraction freeモード (全画面タブなし) トグル shift+f11 shift+f11
選択部分の折りたたみ super+alt+[ ctrl+alt+[
選択部分の折りたたみ解除 super+alt+] ctrl+alt+[

開発補助

機能 Mac Windows
関連づけられたファイル(”cpp”, “cxx”, “cc”, “c”, “hpp”, “hxx”, “h”, “ipp”, “inl”, “m”, “mm”)を開く alt+o alt+o

Key Binding – User

実際のキーバインド設定ファイルは下記です。

Windows

[
    // IME on/off is set  in ATOK
    { "keys": ["ctrl+o"], "command": "noop" },

    // general
    { "keys": ["ctrl+alt+o"], "command": "prompt_open_file" },
    { "keys": ["ctrl+alt+s"], "command": "save_all" },

    // move, select
    { "keys": ["alt+left"], "command": "noop" },
    { "keys": ["alt+right"], "command": "noop" },
    { "keys": ["alt+shift+left"], "command": "noop" },
    { "keys": ["alt+shift+right"], "command": "noop" },
    { "keys": ["ctrl+left"], "command": "move", "args": {"by": "subwords", "forward": false} },
    { "keys": ["ctrl+right"], "command": "move", "args": {"by": "subword_ends", "forward": true} },
    { "keys": ["ctrl+shift+left"], "command": "move", "args": {"by": "subwords", "forward": false, "extend": true} },
    { "keys": ["ctrl+shift+right"], "command": "move", "args": {"by": "subword_ends", "forward": true, "extend": true} },
    { "keys": ["ctrl+up"], "command": "noop" },
    { "keys": ["ctrl+down"], "command": "noop" },
    { "keys": ["ctrl+up"], "command": "scroll_lines", "args": {"amount": 1.0 } },
    { "keys": ["ctrl+down"], "command": "scroll_lines", "args": {"amount": -1.0 } },
    { "keys": ["ctrl+l"], "command": "show_at_center" },

    // find, replace
    { "keys": ["ctrl+g"], "command": "noop" },
    { "keys": ["ctrl+shift+h"], "command": "noop" },
    { "keys": ["f3"], "command": "noop" },
    { "keys": ["shift+f3"], "command": "noop" },
    { "keys": ["ctrl+f3"], "command": "noop" },
    { "keys": ["ctrl+shift+f3"], "command": "noop" },
    { "keys": ["alt+f3"], "command": "noop" },
    { "keys": ["ctrl+alt+e"], "command": "replace_next" },
    { "keys": ["ctrl+g"], "command": "find_next" },
    { "keys": ["ctrl+shift+g"], "command": "find_prev" },
    { "keys": ["alt+g"], "command": "find_under" },
    { "keys": ["alt+shift+g"], "command": "find_under_prev" },
    { "keys": ["ctrl+alt+g"], "command": "find_all_under" },
    { "keys": ["alt+f"], "command": "show_panel", "args": {"panel": "find"} },
    { "keys": ["ctrl+alt+f"], "command": "show_panel", "args": {"panel": "replace"} },
    { "keys": ["ctrl+alt+e"], "command": "replace_next" },

    // edit
    { "keys": ["ctrl+shift+backspace"], "command": "noop" },
    { "keys": ["alt+backspace"], "command": "run_macro_file", "args": {"file": "Packages/Default/Delete to Hard BOL.sublime-macro"} },
    { "keys": ["ctrl+k"], "command": "run_macro_file", "args": {"file": "Packages/Default/Delete to Hard EOL.sublime-macro"} },
    { "keys": ["alt+k", "ctrl+b"], "command": "toggle_side_bar" },
    { "keys": ["alt+k", "ctrl+d"], "command": "find_under_expand_skip" },
    { "keys": ["alt+k", "ctrl+u"], "command": "upper_case" },
    { "keys": ["alt+k", "ctrl+l"], "command": "lower_case" },
    { "keys": ["alt+k", "ctrl+space"], "command": "set_mark" },
    { "keys": ["alt+k", "ctrl+a"], "command": "select_to_mark" },
    { "keys": ["alt+k", "ctrl+w"], "command": "delete_to_mark" },
    { "keys": ["alt+k", "ctrl+x"], "command": "swap_with_mark" },
    { "keys": ["alt+k", "ctrl+y"], "command": "yank" },
    { "keys": ["alt+k", "ctrl+k"], "command": "run_macro_file", "args": {"file": "Packages/Default/Delete to Hard EOL.sublime-macro"} },
    { "keys": ["alt+k", "ctrl+backspace"], "command": "run_macro_file", "args": {"file": "Packages/Default/Delete to Hard BOL.sublime-macro"} },
    { "keys": ["alt+k", "ctrl+g"], "command": "clear_bookmarks", "args": {"name": "mark"} },
    { "keys": ["alt+k", "ctrl+c"], "command": "show_at_center" },
    { "keys": ["alt+k", "ctrl+1"], "command": "fold_by_level", "args": {"level": 1} },
    { "keys": ["alt+k", "ctrl+2"], "command": "fold_by_level", "args": {"level": 2} },
    { "keys": ["alt+k", "ctrl+3"], "command": "fold_by_level", "args": {"level": 3} },
    { "keys": ["alt+k", "ctrl+4"], "command": "fold_by_level", "args": {"level": 4} },
    { "keys": ["alt+k", "ctrl+5"], "command": "fold_by_level", "args": {"level": 5} },
    { "keys": ["alt+k", "ctrl+6"], "command": "fold_by_level", "args": {"level": 6} },
    { "keys": ["alt+k", "ctrl+7"], "command": "fold_by_level", "args": {"level": 7} },
    { "keys": ["alt+k", "ctrl+8"], "command": "fold_by_level", "args": {"level": 8} },
    { "keys": ["alt+k", "ctrl+9"], "command": "fold_by_level", "args": {"level": 9} },
    { "keys": ["alt+k", "ctrl+0"], "command": "unfold_all" },
    { "keys": ["alt+k", "ctrl+j"], "command": "unfold_all" },
    { "keys": ["alt+k", "ctrl+t"], "command": "fold_tag_attributes" },

    { "keys": ["ctrl+shift+delete"], "command": "noop"  },
    { "keys": ["ctrl+delete"], "command": "run_macro_file", "args": {"file": "Packages/Default/Delete to Hard EOL.sublime-macro"} },
    { "keys": ["alt+y"], "command": "yank" },

    { "keys": ["alt+c"], "command": "noop" },
    { "keys": ["alt+r"], "command": "noop" },
    { "keys": ["alt+w"], "command": "noop" },
    { "keys": ["alt+a"], "command": "noop" },
    { "keys": ["ctrl+alt+c"], "command": "toggle_case_sensitive", "context":
        [
            { "key": "setting.is_widget", "operator": "equal", "operand": true }
        ]
    },
    { "keys": ["ctrl+alt+r"], "command": "toggle_regex", "context":
        [
            { "key": "setting.is_widget", "operator": "equal", "operand": true }
        ]
    },
    { "keys": ["ctrl+alt+w"], "command": "toggle_whole_word", "context":
        [
            { "key": "setting.is_widget", "operator": "equal", "operand": true }
        ]
    },
    { "keys": ["ctrl+alt+a"], "command": "toggle_preserve_case", "context":
        [
            { "key": "setting.is_widget", "operator": "equal", "operand": true }
        ]
    },

    { "keys": ["ctrl+alt+."], "command": "close_tag" },

    { "keys": ["ctrl+shift+up"], "command": "select_lines", "args": {"forward": false} },
    { "keys": ["ctrl+shift+down"], "command": "select_lines", "args": {"forward": true} },
    { "keys": ["ctrl+alt+up"], "command": "swap_line_up" },
    { "keys": ["ctrl+alt+down"], "command": "swap_line_down" },

    { "keys": ["f9"], "command": "noop" },
    { "keys": ["ctrl+f9"], "command": "noop" },
    { "keys": ["f5"], "command": "sort_lines", "args": {"case_sensitive": false} },
    { "keys": ["ctrl+f5"], "command": "sort_lines", "args": {"case_sensitive": true} },
    { "keys": ["alt+q"], "command": "noop" },
    { "keys": ["ctrl+alt+q"], "command": "wrap_lines" },

    // window, tab
    { "keys": ["ctrl+pagedown"], "command": "noop" },
    { "keys": ["ctrl+pageup"], "command": "noop" },
    { "keys": ["ctrl+alt+left"], "command": "prev_view" },
    { "keys": ["ctrl+alt+right"], "command": "next_view" },

    { "keys": ["alt+shift+1"], "command": "noop" },
    { "keys": ["alt+shift+2"], "command": "noop"    },
    { "keys": ["alt+shift+3"], "command": "noop" },
    { "keys": ["alt+shift+4"], "command": "noop"    },
    { "keys": ["alt+shift+8"], "command": "noop" },
    { "keys": ["alt+shift+9"], "command": "noop" },
    { "keys": ["alt+shift+5"], "command": "noop" },
    {
        "keys": ["ctrl+alt+1"],
        "command": "set_layout",
        "args":
        {
            "cols": [0.0, 1.0],
            "rows": [0.0, 1.0],
            "cells": [[0, 0, 1, 1]]
        }
    },
    {
        "keys": ["ctrl+alt+2"],
        "command": "set_layout",
        "args":
        {
            "cols": [0.0, 0.5, 1.0],
            "rows": [0.0, 1.0],
            "cells": [[0, 0, 1, 1], [1, 0, 2, 1]]
        }
    },
    {
        "keys": ["ctrl+alt+3"],
        "command": "set_layout",
        "args":
        {
            "cols": [0.0, 0.33, 0.66, 1.0],
            "rows": [0.0, 1.0],
            "cells": [[0, 0, 1, 1], [1, 0, 2, 1], [2, 0, 3, 1]]
        }
    },
    {
        "keys": ["ctrl+alt+4"],
        "command": "set_layout",
        "args":
        {
            "cols": [0.0, 0.25, 0.5, 0.75, 1.0],
            "rows": [0.0, 1.0],
            "cells": [[0, 0, 1, 1], [1, 0, 2, 1], [2, 0, 3, 1], [3, 0, 4, 1]]
        }
    },
    {
        "keys": ["ctrl+alt+shift+2"],
        "command": "set_layout",
        "args":
        {
            "cols": [0.0, 1.0],
            "rows": [0.0, 0.5, 1.0],
            "cells": [[0, 0, 1, 1], [0, 1, 1, 2]]
        }
    },
    {
        "keys": ["ctrl+alt+shift+3"],
        "command": "set_layout",
        "args":
        {
            "cols": [0.0, 1.0],
            "rows": [0.0, 0.33, 0.66, 1.0],
            "cells": [[0, 0, 1, 1], [0, 1, 1, 2], [0, 2, 1, 3]]
        }
    },
    {
        "keys": ["super+alt+5"],
        "command": "set_layout",
        "args":
        {
            "cols": [0.0, 0.5, 1.0],
            "rows": [0.0, 0.5, 1.0],
            "cells":
            [
                [0, 0, 1, 1], [1, 0, 2, 1],
                [0, 1, 1, 2], [1, 1, 2, 2]
            ]
        }
    },

    { "keys": ["ctrl+shift+["], "command": "noop" },
    { "keys": ["ctrl+shift+]"], "command": "noop" },
    { "keys": ["ctrl+alt+["], "command": "fold" },
    { "keys": ["ctrl+alt+]"], "command": "unfold" },



    // derived from sublemacspro
    // Emacs Move to hard beol eol for ctrl shortcuts
    { "keys": ["ctrl+a"], "command": "move_to", "args": {"to": "hardbol", "extend": false}},
    { "keys": ["ctrl+a"], "command": "move_to", "args": {"to": "hardbol", "extend": false}, "context":
        [
            { "key": "sbp_emacs_has_mark", "operator": "equal", "operand": true }
        ]
    },
    { "keys": ["ctrl+e"], "command": "move_to", "args": {"to": "hardeol", "extend": false}},
    { "keys": ["ctrl+e"], "command": "move_to", "args": {"to": "hardeol", "extend": false}, "context":
        [
            { "key": "sbp_emacs_has_mark", "operator": "equal", "operand": true }
        ]
    },
    { "keys": ["ctrl+b"], "command": "move", "args": {"by": "characters", "forward": false} },
    { "keys": ["ctrl+f"], "command": "move", "args": {"by": "characters", "forward": true} },
    { "keys": ["ctrl+p"], "command": "move", "args": {"by": "lines", "forward": false} },
    { "keys": ["ctrl+n"], "command": "move", "args": {"by": "lines", "forward": true} },
    { "keys": ["ctrl+h"], "command": "left_delete"},
    { "keys": ["ctrl+d"], "command": "right_delete"},
    { "keys": ["ctrl+ackspace"], "command": "delete_word", "args": { "forward": false } },
    { "keys": ["alt+backspace"], "command": "delete_word", "args": { "forward": false } },
    { "keys": ["super+backspace"], "command": "delete_word", "args": { "forward": false } },
    { "keys": ["alt+shift+,"], "command": "move_to", "args": {"to": "bof", "extend": false}},
    { "keys": ["alt+shift+."], "command": "move_to", "args": {"to": "eof", "extend": false}}
]

Mac

[
    // move, select
    { "keys": ["ctrl+alt+up"], "command": "select_lines", "args": {"forward": false} },
    { "keys": ["ctrl+alt+down"], "command": "select_lines", "args": {"forward": true} },

    { "keys": ["super+up"], "command": "scroll_lines", "args": {"amount": 1.0} },
    { "keys": ["super+down"], "command": "scroll_lines", "args": {"amount": -1.0} },

    // find, replace
    { "keys": ["alt+g"], "command": "find_under" },
    { "keys": ["shift+alt+g"], "command": "find_under_prev" },
    { "keys": ["ctrl+alt+g"], "command": "find_all_under" },

    // edit
    { "keys": ["alt+."], "command": "close_tag" },

    // window, tab
    { "keys": ["f11"], "command": "toggle_full_screen" },
    { "keys": ["shift+f11"], "command": "toggle_distraction_free" },

    // developing assist
    { "keys": ["alt+o"], "command": "switch_file", "args": {"extensions": ["cpp", "cxx", "cc", "c", "hpp", "hxx", "h", "ipp", "inl", "m", "mm"]} },


    // derived from sublemacspro
    { "keys": ["alt+shift+,"], "command": "move_to", "args": {"to": "bof", "extend": false}},
    { "keys": ["alt+shift+."], "command": "move_to", "args": {"to": "eof", "extend": false}}    
]

Sublime Text 2はマルチプラットフォーム対応の便利なエディタです。
しかし、プラットフォームごとにショートカットキーが異なるので、よく混乱します。 MacのCmdをWindowsではCtrlに置き換えればよいかと思いきや、それが当てはまるものと当てはまらないものがあります。

というわけで、MacとWindowsのショートカットキーの違いをまとめてみました。
表記はsublime-keymapから取得しています。
superはCmdキーです。

なお、

  • Mac標準のEmcas式カーソル移動の差分は、リストしていません
  • CmdをCtrlに置き換えるだけでよいものは、リストしていません

環境

  • Mac: Sublime Text 2 Version2.0.1, Build 2217
  • Windows: Sublime Text 2 Portable Version2.0.1, Build 2217

一般

機能 Mac Windows
コンテキストメニュー表示 alt+f2 menu
プリファレンスファイル表示 super+, なし
プロジェクト選択ダイアログ表示 super+ctrl+p ctrl+alt+p
ファイル選択パレット表示 super+t ctrl+p
ファイルを開くダイアログ表示 super+o ctrl+o
すべて保存 super+alt+s なし

カーソル移動・選択

機能 Mac Windows
カーソル移動 (単語単位、前方) ctrl+alt+right alt+right
カーソル移動 (単語単位、前方) ctrl+right alt+right
カーソル移動 (単語単位、後方) ctrl+alt+left alt+left
カーソル移動 (単語単位、後方) ctrl+left alt+left
選択 (単語単位、前方) ctrl+alt+shift+right alt+shift+right
選択 (単語単位、前方) ctrl+shift+right alt+shift+right
選択 (単語単位、後方) ctrl+alt+shift+left alt+shift+left
選択 (単語単位、後方) ctrl+shift+left alt+shift+left
タグ内全選択 super+shift+a ctrl+shift+a
カーソル追加 (上の行) ctrl+shift+up ctrl+alt+up
カーソル追加 (下の行) ctrl+shift+down ctrl+alt+down
上へ1行スクロール ctrl+alt+up ctrl+up
下へ1行スクロール ctrl+alt+down ctrl+down
カーソル行を画面中央にスクロール ctrl+l “ctrl+k”, “ctrl+c”

検索・置換

機能 Mac Windows
次を検索 super+g f3
前を検索 super+shift+g shift+f3
カレントワードで次を検索 alt+super+g ctrl+f3
カレントワードで前を検索 shift+alt+super+g ctrl+shift+f3
カレントワードで検索してすべて選択 ctrl+super+g alt+f3
置換パネルを表示 super+alt+f ctrl+h
次を置換 super+alt+e ctrl+shift+h
検索・置換の正規表現をトグル super+alt+r alt+r
検索・置換のcase_sensitiveをトグル super+alt+c alt+c
検索・置換の単語完全一致をトグル super+alt+w alt+w
置換で大文字小文字を保存するか、トグル super+alt+a alt+a

編集

機能 Mac Windows
行頭まで削除 super+backspace ctrl+shift+backspace
行末まで削除 ctrl+k ctrl+shift+backspace
行末まで削除 super+delete ctrl+shift+delete
ヤンク ctrl+y なし
閉じタグ挿入 super+alt+. alt+.
下の行と入れ替え ctrl+super+down ctrl+shift+down
上の行と入れ替え ctrl+super+up ctrl+shift+up
行整列 (case_sensitive) ctrl+f5 ctrl+f9
行整列 (case_insensitive) f5 f9
パラグラフの整形 super+alt+q alt+q
改行 ctrl+o なし
挿入モード/上書きモード トグル super+alt+o insert
? Packages/XML/long-tag.sublime-snippet ctrl+shift+w alt+shift+w

ウインドウ・タブ操作

機能 Mac Windows
前のタブに移動 super+alt+left ctrl+pageup
前のタブに移動 super+shift+[ ctrl+pageup
次のタブに移動 super+shift+] ctrl+pagedown
次のタブに移動 super+alt+right ctrl+pagedown
n番目のタブ移動 super+[0..9] alt+[0..9]
ウインドウ分割 (縦2等分) super+alt+shift+2 alt+shift+8
ウインドウ分割 (縦3等分) super+alt+shift+3 alt+shift+9
ウインドウ分割 (横n等分) super+alt+[1..4] alt+shift+[1..4]
ウインドウ4分割 super+alt+5 alt+shift+5
全画面表示トグル super+ctrl+f f11
distraction freeモード (全画面タブなし) トグル super+ctrl+shift+f shift+f11
選択部分の折りたたみ super+alt+[ ctrl+shift+[
選択部分の折りたたみ解除 super+alt+] ctrl+shift+]

開発補助

機能 Mac Windows
スコープ名を表示 ctrl+shift+p ctrl+alt+shift+p
スコープ名を表示 super+alt+p ctrl+alt+shift+p
関連づけられたファイル(”cpp”, “cxx”, “cc”, “c”, “hpp”, “hxx”, “h”, “ipp”, “inl”, “m”, “mm”)を開く super+alt+up alt+o