Sublime Text 3 の設定(2/3) – Key Bindings [for Windows]
Sublime Text 3 の設定エントリー一覧
- Package Control
-
Key Bindings
- for Mac
- for Windows(現在のエントリー)
- Settings
前置き
- 長年Macユーザーだった自分が、Windowsでも近い感覚で操作できるようにすることを目的にしています
- 人によってはデフォルトで十分な(わざわざ変更する必要がない)設定項目もあります
- Windows ではUS配列キーを利用しています
- Mac 版の設定エントリーは以下
設定画面の開き方
- ツールバー>Preferences>Key Bindings
- Package Control>「Prefereces: Key Bindings」を検索
事前準備
デフォルト設定ファイルを編集可能にする
格納場所の準備
- エクスプローラを開く
-
alt+Dでアドレスバーを選択肢、以下を入力してEnter
%AppData%\Sublime Text 3\Packages
-
以下のパス移動したことを確認
C:\Users\ユーザー名\AppData\Roaming\Sublime Text 3\Packages
- 直下にDefaultディレクトリを作成
設定ファイルの複製&保存
- SublimeTextを開く
- Key Bindingsを開く
-
ctrl+shift+Sで先程作ったディレクトリへ保存
-
alt+Dでアドレスバーに以下を入力して移動する
%AppData%\Sublime Text 3\Packages\Default
- ファイル名は
Default (Windows).sublime-keymap
-
alt+Dでアドレスバーに以下を入力して移動する
デフォルト設定ファイルを編集する
Key Bindingsを開いたときに左側にでる「Defaults」のほうを編集する。
使用しないshow_overlay系ショートカットを無効化
- 誤入力したときにうざったい
- 文字検索時の次の対象へ移動する動作に Ctrl+G を割り当てたい
ので、以下の3行をコメントアウトする。
{ "keys": ["ctrl+r"], "command": "show_overlay", "args": {"overlay": "goto", "text": "@"} }, { "keys": ["ctrl+g"], "command": "show_overlay", "args": {"overlay": "goto", "text": ":"} }, { "keys": ["ctrl+;"], "command": "show_overlay", "args": {"overlay": "goto", "text": "#"} },
使用しないsubwords系ショートカットを無効化
Macでは
- cmd+左右 → 行頭・行末移動
が割り当てられているが、Windows上で無意識的にそれ狙った操作すると
- alt+左右 → subwords 単位の移動
が動作してしまう。
いっぽう、words 単位の移動は
- Mac:option+左右
- Windows:ctrl+左右
が割り当てられており、デフォルトで近い使用感になっており特に問題がない。
よって、誤操作を招くsubwords単位の方は「使わない」と割り切って無効化する。
以下4行をコメントアウトする。
{ "keys": ["alt+left"], "command": "move", "args": {"by": "subwords", "forward": false} }, { "keys": ["alt+right"], "command": "move", "args": {"by": "subword_ends", "forward": true} }, { "keys": ["alt+shift+left"], "command": "move", "args": {"by": "subwords", "forward": false, "extend": true} }, { "keys": ["alt+shift+right"], "command": "move", "args": {"by": "subword_ends", "forward": true, "extend": true} },
scroll_lines(行単位のスクロール)のショートカットを無効化
- 使えなくもないけど使ってない
- ctrl+上下をファイル先頭・末尾移動のショートカットに割り当てたい
ので、以下2行をコメントアウトする。
{ "keys": ["ctrl+up"], "command": "scroll_lines", "args": {"amount": 1.0 } }, { "keys": ["ctrl+down"], "command": "scroll_lines", "args": {"amount": -1.0 } },
ユーザー定義ファイルを編集する
Key Bindingsを開いたときに右側にでる「Users」のほうを編集(追記)する。
文字検索時のショートカット設定
Macでは、日本語入力との相性の関係でEnter(Return)キーによる前後移動ができないため、cmd+Gで代用している。その使用感に近づけるため、以下のショートカットを追加する。
動作 | 割り当てキー |
---|---|
次の対象へ移動 | ctrl+G |
前の対象へ移動 | ctrl+shift+G |
対象をすべて選択 | ctrl+alt+G |
// Find panel key bindings { "keys": ["ctrl+g"], "command": "find_next", "context": [{"key": "panel", "operand": "find"}, {"key": "panel_has_focus"}] }, { "keys": ["shift+ctrl+g"], "command": "find_prev", "context": [{"key": "panel", "operand": "find"}, {"key": "panel_has_focus"}] }, { "keys": ["alt+ctrl+g"], "command": "find_all", "args": {"close_panel": true}, "context": [{"key": "panel", "operand": "find"}, {"key": "panel_has_focus"}] },
行頭・行末移動のショートカット設定
Macではcmd+左右で動く行頭・行末移動を、alt+左右で動くようにする。
{ "keys": ["alt+left"], "command": "move_to", "args": {"to": "bol", "extend": false} }, { "keys": ["alt+right"], "command": "move_to", "args": {"to": "eol", "extend": false} }, { "keys": ["shift+alt+left"], "command": "move_to", "args": {"to": "bol", "extend": true} }, { "keys": ["shift+alt+right"], "command": "move_to", "args": {"to": "eol", "extend": true} },
これが設定されていれば、ctrl+alt+上下をしたあとの矩形選択操作もだいぶMacと同じような使用感に近づく。
ファイル先頭・末尾移動のショートカット設定
Macではcmd+上下で動くファイル先頭・末尾移動を、alt+上下で動くようにする。
{ "keys": ["ctrl+up"], "command": "move_to", "args": {"to": "bof", "extend": false} }, { "keys": ["ctrl+down"], "command": "move_to", "args": {"to": "eof", "extend": false} }, { "keys": ["ctrl+shift+up"], "command": "move_to", "args": {"to": "bof", "extend": true} }, { "keys": ["ctrl+shift+down"], "command": "move_to", "args": {"to": "eof", "extend": true} },
行移動との競合回避
もともとctrl+shift+上下が割り当てられている swap_line_up の設定は、alt+上下で動くように変更する。
{ "keys": ["alt+up"], "command": "swap_line_up" }, { "keys": ["alt+down"], "command": "swap_line_down" },
※できるだけデフォルトを保ちたかったけど、上下移動を優先させるため妥協。
Reindentのショートカット設定
ctrl+shift+Rでインデント整形できるようにする。
{ "keys": ["ctrl+shift+r"], "command": "reindent" , "args": { "single_line": false } },