[
// Move tabs
//
// {"position": "-1"}, {"position": "+1"}
{"keys": ["alt+1"], "command": "move_tab", "args": {"position": "0"}},
{"keys": ["alt+2"], "command": "move_tab", "args": {"position": "1"}},
{"keys": ["alt+3"], "command": "move_tab", "args": {"position": "2"}},
{"keys": ["alt+4"], "command": "move_tab", "args": {"position": "3"}},
{"keys": ["alt+5"], "command": "move_tab", "args": {"position": "4"}},
{"keys": ["alt+6"], "command": "move_tab", "args": {"position": "5"}},
{"keys": ["alt+7"], "command": "move_tab", "args": {"position": "6"}},
{"keys": ["alt+8"], "command": "move_tab", "args": {"position": "7"}},
{"keys": ["alt+9"], "command": "move_tab", "args": {"position": "9"}},
// Git DIFF
//
{ "keys": ["super+alt+d"], "command": "git_diff"},
{ "keys": ["super+alt+ctrl+d"], "command": "git_diff_all"},
{"keys": ["enter"], "command": "git_goto_diff",
"context": [{"key": "selector", "operand": "markup.inserted.diff"}]},
{"keys": ["enter"], "command": "git_goto_diff",
"context": [{"key": "selector", "operand": "markup.deleted.diff"}]},
{"keys": ["super+enter"], "command": "git_goto_diff",
"context": [{"key": "selector", "operand": "markup.inserted.diff"}]},
{"keys": ["super+enter"], "command": "git_goto_diff",
"context": [{"key": "selector", "operand": "markup.deleted.diff"}]},
// Find under expand
{ "keys": ["super+e"], "command": "find_under" },
{ "keys": ["shift+super+e"], "command": "find_under_prev" },
// Jump
{ "keys": ["ctrl+b+b"], "command": "jump_back" },
{ "keys": ["super+alt+,"], "command": "jump_back" },
{ "keys": ["super+alt+."], "command": "jump_forward" },
// Sidebar
{ "keys": ["super+alt+b"], "command": "toggle_side_bar" },
{ "keys": ["super+k", "super+r"], "command": "reveal_in_side_bar"},
{ "keys": ["super+k"], "command": "toggle_tab_lock" },
// Open console
{ "keys": ["ctrl+'"], "command": "show_panel", "args": {"panel": "console", "toggle": true} },
{ "keys": ["super+ctrl+alt+f"], "command": "toggle_distraction_free" },
{ "keys": ["super+w"], "command": "close" },
// lisp indent
{"keys": ["super+i"], "command": "lispindent"},
{"keys": ["super+shift+e"], "command": "lispindent"},
// git gutter
{ "keys": ["ctrl+down"], "command": "git_gutter_next_change" },
{ "keys": ["ctrl+up"], "command": "git_gutter_prev_change" },
// Indent
{ "keys": ["super+alt+]"], "command": "indent" },
{ "keys": ["super+alt+["], "command": "unindent" },
// Swap lines
{ "keys": ["ctrl+shift+down"], "command": "swap_line_down" },
{ "keys": ["ctrl+shift+up"], "command": "swap_line_up" },
{ "keys": ["super+alt+up"], "command": "focus_neighboring_group", "args": {"forward": false} },
{ "keys": ["super+alt+down"], "command": "focus_neighboring_group" },
// Clojure Dev
//
// SublimeREPL bindings:
// =====================
{ "keys": ["ctrl+l"], "command": "repl_clear"},
{ "keys": ["super+shift+l"], "command": "repl_clear"},
{ "keys": ["ctrl+enter"], "command": "repl_transfer_current", "args": {"scope": "selection"}},
{ "keys": ["ctrl+shift+enter"], "command": "repl_transfer_current", "args": {"scope": "block"}},
{ "keys": ["alt+super+i"], "command": "switch_to_current_namespace_in_repl"},
{ "keys": ["super+shift+x"], "command": "run_clojure_tests_from_current_namespace_in_repl"},
{ "keys": ["alt+super+r"], "command": "reload_server"},
// BracketHighlighter bindings:
// ===========================
// Swap bracket type
{ "keys": ["super+shift+]"],
"command": "swap_brackets"},
// Select text between brackets
{ "keys": ["super+alt+/"],
"command": "bh_key", "args": {"lines" : true, "plugin": {"type": ["__all__"], "command": "bh_modules.bracketselect"} } },
{ "keys": ["super+alt+-"],
"command": "bh_key", "args": {"lines" : true, "plugin": {"type": ["__all__"], "command": "bh_modules.bracketselect"} } },
// Select tag name of HTML/XML tag (both opening name and closing)
{ "keys": ["super+alt+j"],
"command": "bh_key", "args": {"plugin": {"type": ["cfml", "html", "angle"], "command": "bh_modules.tagnameselect"} } },
// Toggle high visibility mode
// { "keys": ["super+h"], "command": "bh_toggle_high_visibility"},
// Go to left bracket
{
"keys": ["ctrl+left"],
"command": "bh_key",
"args":
{
"no_outside_adj": true,
"lines" : true,
"plugin":
{
"type": ["__all__"],
"command": "bh_modules.bracketselect",
"args": {"select": "left"}
}
}
},
// Go to right bracket
{
"keys": ["ctrl+right"],
"command": "bh_key",
"args":
{
"no_outside_adj": true,
"lines" : true,
"plugin":
{
"type": ["__all__"],
"command": "bh_modules.bracketselect",
"args": {"select": "right"}
}
}
},
{
"keys": ["super+alt+w"],
"command": "close_other_tabs"
},
// sublime-paredit fixes:
// ======================
// Don't constrain close-parens unless we're in paredit mode:
{ "keys": [")"], "command": "insert_snippet", "args": {"contents": ")"}, "context":
[{ "key": "setting.paredit_enabled", "operator": "equal", "operand": false }]},
{ "keys": [")"], "command": "run_macro_file", "args": {"file": "Packages/sublime-paredit/Paredit Closing Bracket.sublime-macro_"}, "context":
[{ "key": "setting.paredit_enabled", "operator": "equal", "operand": true }]},
{ "keys": [")"], "command": "move", "args": {"by": "characters", "forward": true}, "context":
[
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
{ "key": "following_text", "operator": "regex_contains", "operand": "^\\)", "match_all": true }
]
},
{
"keys": ["super+shift+k"],
"command": "paredit_kill_expression",
"context": [{"key": "should_paredit"}]
},
// multiple finds
{ "keys": ["super+alt+l"],
"command": "run_multiple_commands",
"args": {
"commands": [
{"command": "find_under_expand", "context": "window"},
{"command": "slurp_find_string", "context": "window"},
{"command": "show_panel", "args": {"panel": "find"}, "context": "window"}
]
}
},
// layout 2 rows for repl
{
"keys": ["super+alt+h"],
"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]]
}
},
// Toggle Comments
{
"keys": ["super+alt+k"],
"command": "toggle_comment",
"args": {
"block": false
}
},
// Duplicate line
{
"keys": ["super+shift+d"],
"command": "duplicate_line"
},
// Delete line
{
"keys": ["super+d"],
"command": "run_macro_file",
"args": {
"file": "Packages/Default/Delete Line.sublime-macro"
}
},
// Find under expand cursor
{
"keys": ["super+."],
"command": "find_under_expand"
},
// Skip find under expand
{ "keys": ["super+shift+i"],
"command": "find_under_expand_skip"
},
// Go to line
{
"keys": ["super+l"],
"command": "show_overlay",
"args": {
"overlay": "goto",
"text": ":"
}
},
// select line under cursor for multiple selection
{ "keys": ["ctrl+alt+up"], "command": "select_lines", "args": {"forward": false} },
{ "keys": ["ctrl+alt+down"], "command": "select_lines", "args": {"forward": true} },
// swap lines
{ "keys": ["ctrl+shift+up"], "command": "swap_line_up" },
{ "keys": ["ctrl+shift+down"], "command": "swap_line_down" },
// Expand selection to
{
"keys": ["super+-"],
"command": "expand_selection",
"args": {
"to": "scope"
}
},
{
"keys": ["super+/"],
"command": "expand_selection",
"args": {
"to": "scope"
}
},
// paste
{ "keys": ["super+shift+v"], "command": "paste" },
{ "keys": ["super+v"], "command": "paste_and_indent" },
// code folding
{ "keys": ["super+ctrl+k"], "command": "fold" },
{ "keys": ["super+ctrl+l"], "command": "unfold" },
{ "keys": ["super+ctrl+1"], "command": "fold_by_level", "args": {"level": 1} },
{ "keys": ["super+ctrl+2"], "command": "fold_by_level", "args": {"level": 2} },
{ "keys": ["super+ctrl+3"], "command": "fold_by_level", "args": {"level": 3} },
{ "keys": ["super+ctrl+4"], "command": "fold_by_level", "args": {"level": 4} },
{ "keys": ["super+ctrl+5"], "command": "fold_by_level", "args": {"level": 5} },
{ "keys": ["super+ctrl+6"], "command": "fold_by_level", "args": {"level": 6} },
{ "keys": ["super+ctrl+7"], "command": "fold_by_level", "args": {"level": 7} },
{ "keys": ["super+ctrl+8"], "command": "fold_by_level", "args": {"level": 8} },
{ "keys": ["super+ctrl+0"], "command": "unfold_all" },
// { "keys": ["super+k", "super+t"], "command": "fold_tag_attributes" },
//
// CTAGS
//
{
"command": "navigate_to_definition",
"keys": ["ctrl+t", "ctrl+t"]
},
{
"command": "navigate_to_definition",
"keys": ["ctrl+shift+period"]
},
{
"command": "search_for_definition",
"keys": ["ctrl+t", "ctrl+y"]
},
{
"command": "jump_prev",
"keys": ["ctrl+t", "ctrl+b"]
},
{
"command": "jump_prev",
"keys": ["ctrl+shift+comma"]
},
{
"command": "rebuild_tags",
"keys": ["ctrl+t", "ctrl+r"]
},
{
"command": "show_symbols",
"args": {"type": "multi"},
"context": [
{
"key": "selector",
"match_all": true,
"operand": "source -source.css",
"operator": "equal"
}
],
"keys": ["super+shift+r"]
},
{
"command": "show_symbols",
"args": {"type": "lang"},
"context": [
{
"key": "selector",
"match_all": true,
"operand": "source -source.css",
"operator": "equal"
}
],
"keys": ["ctrl+alt+shift+s"]
},
{ // override current default
"command": "transpose",
"context": [
{ "key": "num_selections", "operator": "not_equal", "operand": 1 }
],
"keys": ["ctrl+t"]
},
// html tidy plugin
{ "keys": ["ctrl+shift+r"], "command": "html_tidy" },
// trailing whitespaces plugin
{
"keys": ["super+alt+ctrl+t"],
"command": "delete_trailing_spaces"
},
// Override single-quote autoparing
{ "keys": ["'"], "command": "insert_snippet", "args": {"contents": "'$0"}},
{ "keys": ["shift+command+m"], "command": "goto_definition"},
// panel layout
{
"keys": ["super+shift+1"],
"command": "set_layout",
"args": {
"cols": [0.0, 1.0],
"rows": [0.0, 1.0],
"cells": [
[0, 0, 1, 1]
]
}
}, {
"keys": ["super+shift+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": ["super+shift+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": ["super+shift+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]]
}
}
]