mirror of
https://github.com/rbreaves/kinto.git
synced 2025-11-17 11:24:00 +01:00
- Relocated files not relevant to install under references, deleted others
This commit is contained in:
@@ -0,0 +1,705 @@
|
||||
[
|
||||
/*
|
||||
Custom macOS keymap for Kinto keymap
|
||||
*/
|
||||
{ "keys": ["ctrl+shift+n"], "command": "new_window" },
|
||||
{ "keys": ["ctrl+shift+w"], "command": "close_window" },
|
||||
{ "keys": ["ctrl+o"], "command": "prompt_open" },
|
||||
{ "keys": ["ctrl+shift+t"], "command": "reopen_last_file" },
|
||||
{ "keys": ["ctrl+super+up"], "command": "switch_file", "args": {"extensions": ["cpp", "cxx", "cc", "c", "hpp", "hxx", "hh", "h", "ipp", "inl", "m", "mm"]} },
|
||||
{ "keys": ["ctrl+n"], "command": "new_file" },
|
||||
{ "keys": ["ctrl+s"], "command": "save" },
|
||||
{ "keys": ["ctrl+shift+s"], "command": "prompt_save_as" },
|
||||
{ "keys": ["ctrl+super+s"], "command": "save_all" },
|
||||
{ "keys": ["ctrl+w"], "command": "close" },
|
||||
|
||||
{ "keys": ["ctrl+k", "ctrl+b"], "command": "toggle_side_bar" },
|
||||
{ "keys": ["ctrl+alt+f"], "command": "toggle_full_screen" },
|
||||
{ "keys": ["ctrl+alt+shift+f"], "command": "toggle_distraction_free" },
|
||||
|
||||
{ "keys": ["ctrl+z"], "command": "undo" },
|
||||
{ "keys": ["ctrl+shift+z"], "command": "redo" },
|
||||
{ "keys": ["ctrl+y"], "command": "redo_or_repeat" },
|
||||
{ "keys": ["ctrl+u"], "command": "soft_undo" },
|
||||
{ "keys": ["ctrl+shift+u"], "command": "soft_redo" },
|
||||
|
||||
{ "keys": ["ctrl+x"], "command": "cut" },
|
||||
{ "keys": ["ctrl+c"], "command": "copy" },
|
||||
{ "keys": ["ctrl+v"], "command": "paste" },
|
||||
{ "keys": ["ctrl+shift+v"], "command": "paste_and_indent" },
|
||||
{ "keys": ["ctrl+k", "ctrl+v"], "command": "paste_from_history" },
|
||||
{ "keys": ["ctrl+option+v"], "command": "paste_from_history" },
|
||||
|
||||
{ "keys": ["alt+super+left"], "command": "move", "args": {"by": "subwords", "forward": false} },
|
||||
{ "keys": ["alt+super+right"], "command": "move", "args": {"by": "subword_ends", "forward": true} },
|
||||
{ "keys": ["alt+super+shift+left"], "command": "move", "args": {"by": "subwords", "forward": false, "extend": true} },
|
||||
{ "keys": ["alt+super+shift+right"], "command": "move", "args": {"by": "subword_ends", "forward": true, "extend": true} },
|
||||
|
||||
{ "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} },
|
||||
|
||||
{ "keys": ["alt+super+up"], "command": "scroll_lines", "args": {"amount": 1.0} },
|
||||
{ "keys": ["alt+super+down"], "command": "scroll_lines", "args": {"amount": -1.0} },
|
||||
|
||||
{ "keys": ["alt+shift+up"], "command": "select_lines", "args": {"forward": false} },
|
||||
{ "keys": ["alt+shift+down"], "command": "select_lines", "args": {"forward": true} },
|
||||
|
||||
{ "keys": ["ctrl+shift+["], "command": "prev_view" },
|
||||
{ "keys": ["ctrl+shift+]"], "command": "next_view" },
|
||||
{ "keys": ["ctrl+super+left"], "command": "prev_view" },
|
||||
{ "keys": ["ctrl+super+right"], "command": "next_view" },
|
||||
|
||||
{ "keys": ["alt+tab"], "command": "next_view_in_stack" },
|
||||
{ "keys": ["alt+shift+tab"], "command": "prev_view_in_stack" },
|
||||
|
||||
{ "keys": ["ctrl+a"], "command": "select_all" },
|
||||
{ "keys": ["ctrl+shift+l"], "command": "split_selection_into_lines" },
|
||||
{ "keys": ["escape"], "command": "single_selection", "context":
|
||||
[
|
||||
{ "key": "num_selections", "operator": "not_equal", "operand": 1 }
|
||||
]
|
||||
},
|
||||
{ "keys": ["escape"], "command": "clear_fields", "context":
|
||||
[
|
||||
{ "key": "has_next_field", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["escape"], "command": "clear_fields", "context":
|
||||
[
|
||||
{ "key": "has_prev_field", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["escape"], "command": "hide_panel", "args": {"cancel": true},
|
||||
"context":
|
||||
[
|
||||
{ "key": "panel_visible", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["escape"], "command": "hide_overlay", "context":
|
||||
[
|
||||
{ "key": "overlay_visible", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["escape"], "command": "hide_popup", "context":
|
||||
[
|
||||
{ "key": "popup_visible", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["escape"], "command": "hide_auto_complete", "context":
|
||||
[
|
||||
{ "key": "auto_complete_visible", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["ctrl+]"], "command": "indent" },
|
||||
{ "keys": ["ctrl+["], "command": "unindent" },
|
||||
|
||||
{ "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "\t", "exact": true} },
|
||||
{ "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "\t", "exact": false},
|
||||
"context":
|
||||
[
|
||||
{ "key": "setting.tab_completion", "operator": "equal", "operand": true },
|
||||
{ "key": "preceding_text", "operator": "not_regex_match", "operand": ".*\\b[0-9]+$", "match_all": true },
|
||||
]
|
||||
},
|
||||
{ "keys": ["tab"], "command": "replace_completion_with_next_completion", "context":
|
||||
[
|
||||
{ "key": "last_command", "operator": "equal", "operand": "insert_best_completion" },
|
||||
{ "key": "setting.tab_completion", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["tab"], "command": "reindent", "context":
|
||||
[
|
||||
{ "key": "setting.auto_indent", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_match", "operand": "^$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_match", "operand": "^$", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["tab"], "command": "indent", "context":
|
||||
[
|
||||
{ "key": "text", "operator": "regex_contains", "operand": "\n" }
|
||||
]
|
||||
},
|
||||
{ "keys": ["tab"], "command": "next_field", "context":
|
||||
[
|
||||
{ "key": "has_next_field", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["tab"], "command": "commit_completion", "context":
|
||||
[
|
||||
{ "key": "auto_complete_visible" },
|
||||
{ "key": "setting.auto_complete_commit_on_tab" }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["shift+tab"], "command": "insert", "args": {"characters": "\t"} },
|
||||
{ "keys": ["shift+tab"], "command": "unindent", "context":
|
||||
[
|
||||
{ "key": "setting.shift_tab_unindent", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["shift+tab"], "command": "unindent", "context":
|
||||
[
|
||||
{ "key": "preceding_text", "operator": "regex_match", "operand": "^[\t ]*" }
|
||||
]
|
||||
},
|
||||
{ "keys": ["shift+tab"], "command": "unindent", "context":
|
||||
[
|
||||
{ "key": "text", "operator": "regex_contains", "operand": "\n" }
|
||||
]
|
||||
},
|
||||
{ "keys": ["shift+tab"], "command": "prev_field", "context":
|
||||
[
|
||||
{ "key": "has_prev_field", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["ctrl+l"], "command": "expand_selection", "args": {"to": "line"} },
|
||||
{ "keys": ["ctrl+d"], "command": "find_under_expand" },
|
||||
{ "keys": ["ctrl+k", "ctrl+d"], "command": "find_under_expand_skip" },
|
||||
{ "keys": ["ctrl+shift+space"], "command": "expand_selection", "args": {"to": "scope"} },
|
||||
{ "keys": ["alt+shift+m"], "command": "expand_selection", "args": {"to": "brackets"} },
|
||||
{ "keys": ["alt+m"], "command": "move_to", "args": {"to": "brackets"} },
|
||||
{ "keys": ["ctrl+shift+j"], "command": "expand_selection", "args": {"to": "indentation"} },
|
||||
{ "keys": ["ctrl+shift+a"], "command": "expand_selection", "args": {"to": "tag"} },
|
||||
|
||||
{ "keys": ["ctrl+super+."], "command": "close_tag" },
|
||||
|
||||
{ "keys": ["alt+q"], "command": "toggle_record_macro" },
|
||||
{ "keys": ["alt+shift+q"], "command": "run_macro" },
|
||||
|
||||
{ "keys": ["ctrl+enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line.sublime-macro"} },
|
||||
{ "keys": ["ctrl+shift+enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line Before.sublime-macro"} },
|
||||
{ "keys": ["enter"], "command": "commit_completion", "context":
|
||||
[
|
||||
{ "key": "auto_complete_visible" },
|
||||
{ "key": "setting.auto_complete_commit_on_tab", "operand": false }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["ctrl+t"], "command": "show_overlay", "args": {"overlay": "goto", "show_files": true} },
|
||||
{ "keys": ["ctrl+p"], "command": "show_overlay", "args": {"overlay": "goto", "show_files": true} },
|
||||
{ "keys": ["ctrl+shift+p"], "command": "show_overlay", "args": {"overlay": "command_palette"} },
|
||||
{ "keys": ["ctrl+alt+p"], "command": "prompt_select_workspace" },
|
||||
{ "keys": ["ctrl+r"], "command": "show_overlay", "args": {"overlay": "goto", "text": "@"} },
|
||||
{ "keys": ["alt+g"], "command": "show_overlay", "args": {"overlay": "goto", "text": ":"} },
|
||||
{ "keys": ["f12"], "command": "goto_definition" },
|
||||
{ "keys": ["ctrl+super+down"], "command": "goto_definition" },
|
||||
{ "keys": ["ctrl+shift+r"], "command": "goto_symbol_in_project" },
|
||||
{ "keys": ["alt+minus"], "command": "jump_back" },
|
||||
{ "keys": ["alt+shift+minus"], "command": "jump_forward" },
|
||||
|
||||
{ "keys": ["ctrl+i"], "command": "show_panel", "args": {"panel": "incremental_find", "reverse": false} },
|
||||
{ "keys": ["ctrl+shift+i"], "command": "show_panel", "args": {"panel": "incremental_find", "reverse": true} },
|
||||
{ "keys": ["ctrl+f"], "command": "show_panel", "args": {"panel": "find", "reverse": false} },
|
||||
{ "keys": ["ctrl+super+f"], "command": "show_panel", "args": {"panel": "replace", "reverse": false} },
|
||||
{ "keys": ["ctrl+super+e"], "command": "replace_next" },
|
||||
{ "keys": ["ctrl+g"], "command": "find_next" },
|
||||
{ "keys": ["ctrl+shift+g"], "command": "find_prev" },
|
||||
{ "keys": ["ctrl+e"], "command": "slurp_find_string" },
|
||||
{ "keys": ["ctrl+shift+e"], "command": "slurp_replace_string" },
|
||||
|
||||
{ "keys": ["super+ctrl+g"], "command": "find_under" },
|
||||
{ "keys": ["shift+super+ctrl+g"], "command": "find_under_prev" },
|
||||
{ "keys": ["alt+ctrl+g"], "command": "find_all_under" },
|
||||
|
||||
{ "keys": ["ctrl+shift+f"], "command": "show_panel", "args": {"panel": "find_in_files"} },
|
||||
{ "keys": ["f4"], "command": "next_result" },
|
||||
{ "keys": ["shift+f4"], "command": "prev_result" },
|
||||
|
||||
{ "keys": ["f6"], "command": "toggle_setting", "args": {"setting": "spell_check"} },
|
||||
{ "keys": ["alt+f6"], "command": "next_misspelling" },
|
||||
{ "keys": ["alt+shift+f6"], "command": "prev_misspelling" },
|
||||
|
||||
{ "keys": ["alt+ctrl+up"], "command": "swap_line_up" },
|
||||
{ "keys": ["alt+ctrl+down"], "command": "swap_line_down" },
|
||||
|
||||
{ "keys": ["alt+backspace"], "command": "delete_word", "args": { "forward": false, "sub_words": true } },
|
||||
{ "keys": ["alt+delete"], "command": "delete_word", "args": { "forward": true, "sub_words": true } },
|
||||
|
||||
{ "keys": ["ctrl+forward_slash"], "command": "toggle_comment", "args": { "block": false } },
|
||||
{ "keys": ["ctrl+super+forward_slash"], "command": "toggle_comment", "args": { "block": true } },
|
||||
|
||||
{ "keys": ["ctrl+j"], "command": "join_lines" },
|
||||
{ "keys": ["ctrl+shift+d"], "command": "duplicate_line" },
|
||||
|
||||
{ "keys": ["alt+backquote"], "command": "show_panel", "args": {"panel": "console", "toggle": true} },
|
||||
|
||||
{ "keys": ["alt+space"], "command": "auto_complete" },
|
||||
{ "keys": ["alt+space"], "command": "replace_completion_with_auto_complete", "context":
|
||||
[
|
||||
{ "key": "last_command", "operator": "equal", "operand": "insert_best_completion" },
|
||||
{ "key": "auto_complete_visible", "operator": "equal", "operand": false },
|
||||
{ "key": "setting.tab_completion", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["ctrl+super+p"], "command": "show_scope_name" },
|
||||
{ "keys": ["alt+shift+p"], "command": "show_scope_name" },
|
||||
|
||||
{ "keys": ["f7"], "command": "build" },
|
||||
{ "keys": ["ctrl+b"], "command": "build" },
|
||||
{ "keys": ["ctrl+shift+b"], "command": "build", "args": {"select": true} },
|
||||
|
||||
{ "keys": ["alt+c"], "command": "cancel_build" },
|
||||
|
||||
{ "keys": ["alt+t"], "command": "transpose" },
|
||||
|
||||
{ "keys": ["f5"], "command": "sort_lines", "args": {"case_sensitive": false} },
|
||||
{ "keys": ["alt+f5"], "command": "sort_lines", "args": {"case_sensitive": true} },
|
||||
|
||||
// Auto-pair quotes
|
||||
{ "keys": ["\""], "command": "insert_snippet", "args": {"contents": "\"$0\""}, "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": "^(?:\t| |\\)|]|\\}|>|$)", "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "not_regex_contains", "operand": "[\"a-zA-Z0-9_]$", "match_all": true },
|
||||
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.double - punctuation.definition.string.end", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["\""], "command": "insert_snippet", "args": {"contents": "\"${0:$SELECTION}\""}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": false, "match_all": 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 },
|
||||
{ "key": "selector", "operator": "not_equal", "operand": "punctuation.definition.string.begin", "match_all": true },
|
||||
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.double - punctuation.definition.string.end", "match_all": true },
|
||||
]
|
||||
},
|
||||
{ "keys": ["backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Left Right.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\"$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^\"", "match_all": true },
|
||||
{ "key": "selector", "operator": "not_equal", "operand": "punctuation.definition.string.begin", "match_all": true },
|
||||
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.double - punctuation.definition.string.end", "match_all": true },
|
||||
]
|
||||
},
|
||||
|
||||
// Auto-pair single quotes
|
||||
{ "keys": ["'"], "command": "insert_snippet", "args": {"contents": "'$0'"}, "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": "^(?:\t| |\\)|]|\\}|>|$)", "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "not_regex_contains", "operand": "['a-zA-Z0-9_]$", "match_all": true },
|
||||
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.single - punctuation.definition.string.end", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["'"], "command": "insert_snippet", "args": {"contents": "'${0:$SELECTION}'"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": false, "match_all": 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 },
|
||||
{ "key": "selector", "operator": "not_equal", "operand": "punctuation.definition.string.begin", "match_all": true },
|
||||
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.single - punctuation.definition.string.end", "match_all": true },
|
||||
]
|
||||
},
|
||||
{ "keys": ["backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Left Right.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "'$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^'", "match_all": true },
|
||||
{ "key": "selector", "operator": "not_equal", "operand": "punctuation.definition.string.begin", "match_all": true },
|
||||
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.single - punctuation.definition.string.end", "match_all": true },
|
||||
]
|
||||
},
|
||||
|
||||
// Auto-pair brackets
|
||||
{ "keys": ["("], "command": "insert_snippet", "args": {"contents": "($0)"}, "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": "^(?:\t| |\\)|]|;|\\}|$)", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["("], "command": "insert_snippet", "args": {"contents": "(${0:$SELECTION})"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": false, "match_all": 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": ["backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Left Right.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\\($", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^\\)", "match_all": true }
|
||||
]
|
||||
},
|
||||
|
||||
// Auto-pair square brackets
|
||||
{ "keys": ["["], "command": "insert_snippet", "args": {"contents": "[$0]"}, "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": "^(?:\t| |\\)|]|;|\\}|$)", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["["], "command": "insert_snippet", "args": {"contents": "[${0:$SELECTION}]"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": false, "match_all": 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": ["backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Left Right.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\\[$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^\\]", "match_all": true }
|
||||
]
|
||||
},
|
||||
|
||||
// Auto-pair curly brackets
|
||||
{ "keys": ["{"], "command": "insert_snippet", "args": {"contents": "{$0}"}, "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": "^(?:\t| |\\)|]|\\}|$)", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["{"], "command": "wrap_block", "args": {"begin": "{", "end": "}"}, "context":
|
||||
[
|
||||
{ "key": "indented_block", "match_all": true },
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_match", "operand": "^$", "match_all": true },
|
||||
]
|
||||
},
|
||||
{ "keys": ["{"], "command": "insert_snippet", "args": {"contents": "{${0:$SELECTION}}"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": false, "match_all": 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": ["backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Left Right.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\\{$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^\\}", "match_all": true }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line in Braces.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_indent", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\\{$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^\\}", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["shift+enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line in Braces.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_indent", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\\{$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^\\}", "match_all": true }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["enter"], "command": "auto_indent_tag", "context":
|
||||
[
|
||||
{ "key": "setting.auto_indent", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "selector", "operator": "equal", "operand": "punctuation.definition.tag.begin", "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": ">$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^</", "match_all": true },
|
||||
]
|
||||
},
|
||||
{ "keys": ["shift+enter"], "command": "auto_indent_tag", "context":
|
||||
[
|
||||
{ "key": "setting.auto_indent", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "selector", "operator": "equal", "operand": "punctuation.definition.tag.begin", "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": ">$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^</", "match_all": true },
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"keys": ["ctrl+super+1"],
|
||||
"command": "set_layout",
|
||||
"args":
|
||||
{
|
||||
"cols": [0.0, 1.0],
|
||||
"rows": [0.0, 1.0],
|
||||
"cells": [[0, 0, 1, 1]]
|
||||
}
|
||||
},
|
||||
{
|
||||
"keys": ["ctrl+super+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+super+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+super+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+super+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+super+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": ["ctrl+super+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": ["alt+1"], "command": "focus_group", "args": { "group": 0 } },
|
||||
{ "keys": ["alt+2"], "command": "focus_group", "args": { "group": 1 } },
|
||||
{ "keys": ["alt+3"], "command": "focus_group", "args": { "group": 2 } },
|
||||
{ "keys": ["alt+4"], "command": "focus_group", "args": { "group": 3 } },
|
||||
{ "keys": ["alt+5"], "command": "focus_group", "args": { "group": 4 } },
|
||||
{ "keys": ["alt+6"], "command": "focus_group", "args": { "group": 5 } },
|
||||
{ "keys": ["alt+7"], "command": "focus_group", "args": { "group": 6 } },
|
||||
{ "keys": ["alt+8"], "command": "focus_group", "args": { "group": 7 } },
|
||||
{ "keys": ["alt+9"], "command": "focus_group", "args": { "group": 8 } },
|
||||
{ "keys": ["alt+shift+1"], "command": "move_to_group", "args": { "group": 0 } },
|
||||
{ "keys": ["alt+shift+2"], "command": "move_to_group", "args": { "group": 1 } },
|
||||
{ "keys": ["alt+shift+3"], "command": "move_to_group", "args": { "group": 2 } },
|
||||
{ "keys": ["alt+shift+4"], "command": "move_to_group", "args": { "group": 3 } },
|
||||
{ "keys": ["alt+shift+5"], "command": "move_to_group", "args": { "group": 4 } },
|
||||
{ "keys": ["alt+shift+6"], "command": "move_to_group", "args": { "group": 5 } },
|
||||
{ "keys": ["alt+shift+7"], "command": "move_to_group", "args": { "group": 6 } },
|
||||
{ "keys": ["alt+shift+8"], "command": "move_to_group", "args": { "group": 7 } },
|
||||
{ "keys": ["alt+shift+9"], "command": "move_to_group", "args": { "group": 8 } },
|
||||
{ "keys": ["alt+0"], "command": "focus_side_bar" },
|
||||
|
||||
{ "keys": ["ctrl+k", "ctrl+up"], "command": "new_pane" },
|
||||
{ "keys": ["ctrl+k", "ctrl+shift+up"], "command": "new_pane", "args": {"move": false} },
|
||||
{ "keys": ["ctrl+k", "ctrl+down"], "command": "close_pane" },
|
||||
{ "keys": ["ctrl+k", "ctrl+left"], "command": "focus_neighboring_group", "args": {"forward": false} },
|
||||
{ "keys": ["ctrl+k", "ctrl+right"], "command": "focus_neighboring_group" },
|
||||
{ "keys": ["ctrl+k", "ctrl+shift+left"], "command": "move_to_neighboring_group", "args": {"forward": false} },
|
||||
{ "keys": ["ctrl+k", "ctrl+shift+right"], "command": "move_to_neighboring_group" },
|
||||
|
||||
{ "keys": ["ctrl+1"], "command": "select_by_index", "args": { "index": 0 } },
|
||||
{ "keys": ["ctrl+2"], "command": "select_by_index", "args": { "index": 1 } },
|
||||
{ "keys": ["ctrl+3"], "command": "select_by_index", "args": { "index": 2 } },
|
||||
{ "keys": ["ctrl+4"], "command": "select_by_index", "args": { "index": 3 } },
|
||||
{ "keys": ["ctrl+5"], "command": "select_by_index", "args": { "index": 4 } },
|
||||
{ "keys": ["ctrl+6"], "command": "select_by_index", "args": { "index": 5 } },
|
||||
{ "keys": ["ctrl+7"], "command": "select_by_index", "args": { "index": 6 } },
|
||||
{ "keys": ["ctrl+8"], "command": "select_by_index", "args": { "index": 7 } },
|
||||
{ "keys": ["ctrl+9"], "command": "select_by_index", "args": { "index": 8 } },
|
||||
{ "keys": ["ctrl+0"], "command": "select_by_index", "args": { "index": 9 } },
|
||||
|
||||
{ "keys": ["f2"], "command": "next_bookmark" },
|
||||
{ "keys": ["shift+f2"], "command": "prev_bookmark" },
|
||||
{ "keys": ["ctrl+f2"], "command": "toggle_bookmark" },
|
||||
{ "keys": ["ctrl+shift+f2"], "command": "clear_bookmarks" },
|
||||
{ "keys": ["super+f2"], "command": "select_all_bookmarks" },
|
||||
|
||||
{ "keys": ["ctrl+k", "ctrl+u"], "command": "upper_case" },
|
||||
{ "keys": ["ctrl+k", "ctrl+l"], "command": "lower_case" },
|
||||
{ "keys": ["ctrl+k", "ctrl+space"], "command": "set_mark" },
|
||||
{ "keys": ["ctrl+k", "ctrl+a"], "command": "select_to_mark" },
|
||||
{ "keys": ["ctrl+k", "ctrl+w"], "command": "delete_to_mark" },
|
||||
{ "keys": ["ctrl+k", "ctrl+x"], "command": "swap_with_mark" },
|
||||
{ "keys": ["ctrl+k", "ctrl+g"], "command": "clear_bookmarks", "args": {"name": "mark"} },
|
||||
|
||||
{ "keys": ["ctrl+equals"], "command": "increase_font_size" },
|
||||
{ "keys": ["ctrl+plus"], "command": "increase_font_size" },
|
||||
{ "keys": ["ctrl+minus"], "command": "decrease_font_size" },
|
||||
|
||||
{ "keys": ["alt+shift+w"], "command": "insert_snippet", "args": { "name": "Packages/XML/Snippets/long-tag.sublime-snippet" } },
|
||||
|
||||
{ "keys": ["alt+shift+k"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Line.sublime-macro"} },
|
||||
|
||||
{ "keys": ["ctrl+super+q"], "command": "wrap_lines" },
|
||||
|
||||
{ "keys": ["ctrl+super+["], "command": "fold" },
|
||||
{ "keys": ["ctrl+super+]"], "command": "unfold" },
|
||||
{ "keys": ["ctrl+k", "ctrl+1"], "command": "fold_by_level", "args": {"level": 1} },
|
||||
{ "keys": ["ctrl+k", "ctrl+2"], "command": "fold_by_level", "args": {"level": 2} },
|
||||
{ "keys": ["ctrl+k", "ctrl+3"], "command": "fold_by_level", "args": {"level": 3} },
|
||||
{ "keys": ["ctrl+k", "ctrl+4"], "command": "fold_by_level", "args": {"level": 4} },
|
||||
{ "keys": ["ctrl+k", "ctrl+5"], "command": "fold_by_level", "args": {"level": 5} },
|
||||
{ "keys": ["ctrl+k", "ctrl+6"], "command": "fold_by_level", "args": {"level": 6} },
|
||||
{ "keys": ["ctrl+k", "ctrl+7"], "command": "fold_by_level", "args": {"level": 7} },
|
||||
{ "keys": ["ctrl+k", "ctrl+8"], "command": "fold_by_level", "args": {"level": 8} },
|
||||
{ "keys": ["ctrl+k", "ctrl+9"], "command": "fold_by_level", "args": {"level": 9} },
|
||||
{ "keys": ["ctrl+k", "ctrl+0"], "command": "unfold_all" },
|
||||
{ "keys": ["ctrl+k", "ctrl+j"], "command": "unfold_all" },
|
||||
{ "keys": ["ctrl+k", "ctrl+t"], "command": "fold_tag_attributes" },
|
||||
|
||||
{ "keys": ["ctrl+super+o"], "command": "toggle_overwrite" },
|
||||
|
||||
{ "keys": ["super+f2"], "command": "context_menu" },
|
||||
|
||||
{ "keys": ["ctrl+super+c"], "command": "toggle_case_sensitive", "context":
|
||||
[
|
||||
{ "key": "setting.is_widget", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["ctrl+super+r"], "command": "toggle_regex", "context":
|
||||
[
|
||||
{ "key": "setting.is_widget", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["ctrl+super+w"], "command": "toggle_whole_word", "context":
|
||||
[
|
||||
{ "key": "setting.is_widget", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["ctrl+super+a"], "command": "toggle_preserve_case", "context":
|
||||
[
|
||||
{ "key": "setting.is_widget", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
|
||||
// Find panel key bindings
|
||||
{ "keys": ["enter"], "command": "find_next", "context":
|
||||
[{"key": "panel", "operand": "find"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["shift+enter"], "command": "find_prev", "context":
|
||||
[{"key": "panel", "operand": "find"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["super+enter"], "command": "find_all", "args": {"close_panel": true},
|
||||
"context": [{"key": "panel", "operand": "find"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
|
||||
// Replace panel key bindings
|
||||
{ "keys": ["enter"], "command": "find_next", "context":
|
||||
[{"key": "panel", "operand": "replace"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["shift+enter"], "command": "find_prev", "context":
|
||||
[{"key": "panel", "operand": "replace"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["super+enter"], "command": "find_all", "args": {"close_panel": true},
|
||||
"context": [{"key": "panel", "operand": "replace"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["alt+super+enter"], "command": "replace_all", "args": {"close_panel": true},
|
||||
"context": [{"key": "panel", "operand": "replace"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
|
||||
// Incremental find panel key bindings
|
||||
{ "keys": ["enter"], "command": "hide_panel", "context":
|
||||
[{"key": "panel", "operand": "incremental_find"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["shift+enter"], "command": "find_prev", "context":
|
||||
[{"key": "panel", "operand": "incremental_find"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["super+enter"], "command": "find_all", "args": {"close_panel": true},
|
||||
"context": [{"key": "panel", "operand": "incremental_find"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
|
||||
{ "keys": ["ctrl+,"], "command": "edit_settings", "args":
|
||||
{
|
||||
"base_file": "${packages}/Default/Preferences.sublime-settings",
|
||||
"default": "// Settings in here override those in \"Default/Preferences.sublime-settings\",\n// and are overridden in turn by syntax-specific settings.\n{\n\t$0\n}\n"
|
||||
}
|
||||
},
|
||||
|
||||
{ "keys": ["ctrl+k", "ctrl+y"], "command": "yank" },
|
||||
{ "keys": ["ctrl+k", "ctrl+k"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete to Hard EOL.sublime-macro"} },
|
||||
{ "keys": ["ctrl+k", "ctrl+backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete to Hard BOL.sublime-macro"} },
|
||||
{ "keys": ["ctrl+k", "ctrl+c"], "command": "show_at_center" },
|
||||
|
||||
// These are OS X built in commands, and don't need to be listed here, but
|
||||
// doing so lets them show up in the menu
|
||||
{ "keys": ["alt+y"], "command": "yank" },
|
||||
{ "keys": ["ctrl+backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete to Hard BOL.sublime-macro"} },
|
||||
// ctrl+delete isn't a built in command, but makes sense anyway
|
||||
{ "keys": ["ctrl+delete"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete to Hard EOL.sublime-macro"} },
|
||||
{ "keys": ["alt+k"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete to Hard EOL.sublime-macro"} },
|
||||
{ "keys": ["alt+l"], "command": "show_at_center" },
|
||||
{ "keys": ["alt+o"], "command": "insert_snippet", "args": { "contents": "$0\n" } },
|
||||
{ "keys": ["alt+ctrl+d"], "command": "noop" },
|
||||
{ "keys": ["alt+ctrl+shift+d"], "command": "noop" },
|
||||
|
||||
// HTML, XML close tag
|
||||
{ "keys": ["/"], "command": "close_tag", "args": { "insert_slash": true }, "context":
|
||||
[
|
||||
{ "key": "selector", "operator": "equal", "operand": "(text.html, text.xml) - string - comment", "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_match", "operand": ".*<$", "match_all": true },
|
||||
{ "key": "setting.auto_close_tags" }
|
||||
]
|
||||
}
|
||||
]
|
||||
706
references/app-configs/sublime-text3/linux.sublime-keybinds.mac
Normal file
706
references/app-configs/sublime-text3/linux.sublime-keybinds.mac
Normal file
@@ -0,0 +1,706 @@
|
||||
/*
|
||||
On OS X, basic text manipulations (left, right, command+left, etc) make use of the system key bindings,
|
||||
and don't need to be repeated here. Anything listed here will take precedence, however.
|
||||
*/
|
||||
[
|
||||
{ "keys": ["ctrl+shift+n"], "command": "new_window" },
|
||||
{ "keys": ["ctrl+shift+w"], "command": "close_window" },
|
||||
{ "keys": ["ctrl+o"], "command": "prompt_open" },
|
||||
{ "keys": ["ctrl+shift+t"], "command": "reopen_last_file" },
|
||||
{ "keys": ["ctrl+super+up"], "command": "switch_file", "args": {"extensions": ["cpp", "cxx", "cc", "c", "hpp", "hxx", "hh", "h", "ipp", "inl", "m", "mm"]} },
|
||||
{ "keys": ["ctrl+n"], "command": "new_file" },
|
||||
{ "keys": ["ctrl+s"], "command": "save" },
|
||||
{ "keys": ["ctrl+shift+s"], "command": "prompt_save_as" },
|
||||
{ "keys": ["ctrl+super+s"], "command": "save_all" },
|
||||
{ "keys": ["ctrl+w"], "command": "close" },
|
||||
|
||||
{ "keys": ["ctrl+k", "ctrl+b"], "command": "toggle_side_bar" },
|
||||
{ "keys": ["ctrl+alt+f"], "command": "toggle_full_screen" },
|
||||
{ "keys": ["ctrl+alt+shift+f"], "command": "toggle_distraction_free" },
|
||||
|
||||
{ "keys": ["ctrl+z"], "command": "undo" },
|
||||
{ "keys": ["ctrl+shift+z"], "command": "redo" },
|
||||
{ "keys": ["ctrl+y"], "command": "redo_or_repeat" },
|
||||
{ "keys": ["ctrl+u"], "command": "soft_undo" },
|
||||
{ "keys": ["ctrl+shift+u"], "command": "soft_redo" },
|
||||
|
||||
{ "keys": ["ctrl+x"], "command": "cut" },
|
||||
{ "keys": ["ctrl+c"], "command": "copy" },
|
||||
{ "keys": ["ctrl+v"], "command": "paste" },
|
||||
{ "keys": ["ctrl+shift+v"], "command": "paste_and_indent" },
|
||||
{ "keys": ["ctrl+k", "ctrl+v"], "command": "paste_from_history" },
|
||||
{ "keys": ["ctrl+option+v"], "command": "paste_from_history" },
|
||||
|
||||
{ "keys": ["alt+super+left"], "command": "move", "args": {"by": "subwords", "forward": false} },
|
||||
{ "keys": ["alt+super+right"], "command": "move", "args": {"by": "subword_ends", "forward": true} },
|
||||
{ "keys": ["alt+super+shift+left"], "command": "move", "args": {"by": "subwords", "forward": false, "extend": true} },
|
||||
{ "keys": ["alt+super+shift+right"], "command": "move", "args": {"by": "subword_ends", "forward": true, "extend": true} },
|
||||
|
||||
{ "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} },
|
||||
|
||||
{ "keys": ["alt+super+up"], "command": "scroll_lines", "args": {"amount": 1.0} },
|
||||
{ "keys": ["alt+super+down"], "command": "scroll_lines", "args": {"amount": -1.0} },
|
||||
|
||||
{ "keys": ["alt+shift+up"], "command": "select_lines", "args": {"forward": false} },
|
||||
{ "keys": ["alt+shift+down"], "command": "select_lines", "args": {"forward": true} },
|
||||
|
||||
{ "keys": ["ctrl+shift+["], "command": "prev_view" },
|
||||
{ "keys": ["ctrl+shift+]"], "command": "next_view" },
|
||||
{ "keys": ["ctrl+super+left"], "command": "prev_view" },
|
||||
{ "keys": ["ctrl+super+right"], "command": "next_view" },
|
||||
|
||||
{ "keys": ["alt+tab"], "command": "next_view_in_stack" },
|
||||
{ "keys": ["alt+shift+tab"], "command": "prev_view_in_stack" },
|
||||
|
||||
{ "keys": ["ctrl+a"], "command": "select_all" },
|
||||
{ "keys": ["ctrl+shift+l"], "command": "split_selection_into_lines" },
|
||||
{ "keys": ["escape"], "command": "single_selection", "context":
|
||||
[
|
||||
{ "key": "num_selections", "operator": "not_equal", "operand": 1 }
|
||||
]
|
||||
},
|
||||
{ "keys": ["escape"], "command": "clear_fields", "context":
|
||||
[
|
||||
{ "key": "has_next_field", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["escape"], "command": "clear_fields", "context":
|
||||
[
|
||||
{ "key": "has_prev_field", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["escape"], "command": "hide_panel", "args": {"cancel": true},
|
||||
"context":
|
||||
[
|
||||
{ "key": "panel_visible", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["escape"], "command": "hide_overlay", "context":
|
||||
[
|
||||
{ "key": "overlay_visible", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["escape"], "command": "hide_popup", "context":
|
||||
[
|
||||
{ "key": "popup_visible", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["escape"], "command": "hide_auto_complete", "context":
|
||||
[
|
||||
{ "key": "auto_complete_visible", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["ctrl+]"], "command": "indent" },
|
||||
{ "keys": ["ctrl+["], "command": "unindent" },
|
||||
|
||||
{ "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "\t", "exact": true} },
|
||||
{ "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "\t", "exact": false},
|
||||
"context":
|
||||
[
|
||||
{ "key": "setting.tab_completion", "operator": "equal", "operand": true },
|
||||
{ "key": "preceding_text", "operator": "not_regex_match", "operand": ".*\\b[0-9]+$", "match_all": true },
|
||||
]
|
||||
},
|
||||
{ "keys": ["tab"], "command": "replace_completion_with_next_completion", "context":
|
||||
[
|
||||
{ "key": "last_command", "operator": "equal", "operand": "insert_best_completion" },
|
||||
{ "key": "setting.tab_completion", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["tab"], "command": "reindent", "context":
|
||||
[
|
||||
{ "key": "setting.auto_indent", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_match", "operand": "^$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_match", "operand": "^$", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["tab"], "command": "indent", "context":
|
||||
[
|
||||
{ "key": "text", "operator": "regex_contains", "operand": "\n" }
|
||||
]
|
||||
},
|
||||
{ "keys": ["tab"], "command": "next_field", "context":
|
||||
[
|
||||
{ "key": "has_next_field", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["tab"], "command": "commit_completion", "context":
|
||||
[
|
||||
{ "key": "auto_complete_visible" },
|
||||
{ "key": "setting.auto_complete_commit_on_tab" }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["shift+tab"], "command": "insert", "args": {"characters": "\t"} },
|
||||
{ "keys": ["shift+tab"], "command": "unindent", "context":
|
||||
[
|
||||
{ "key": "setting.shift_tab_unindent", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["shift+tab"], "command": "unindent", "context":
|
||||
[
|
||||
{ "key": "preceding_text", "operator": "regex_match", "operand": "^[\t ]*" }
|
||||
]
|
||||
},
|
||||
{ "keys": ["shift+tab"], "command": "unindent", "context":
|
||||
[
|
||||
{ "key": "text", "operator": "regex_contains", "operand": "\n" }
|
||||
]
|
||||
},
|
||||
{ "keys": ["shift+tab"], "command": "prev_field", "context":
|
||||
[
|
||||
{ "key": "has_prev_field", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["ctrl+l"], "command": "expand_selection", "args": {"to": "line"} },
|
||||
{ "keys": ["ctrl+d"], "command": "find_under_expand" },
|
||||
{ "keys": ["ctrl+k", "ctrl+d"], "command": "find_under_expand_skip" },
|
||||
{ "keys": ["ctrl+shift+space"], "command": "expand_selection", "args": {"to": "scope"} },
|
||||
{ "keys": ["alt+shift+m"], "command": "expand_selection", "args": {"to": "brackets"} },
|
||||
{ "keys": ["alt+m"], "command": "move_to", "args": {"to": "brackets"} },
|
||||
{ "keys": ["ctrl+shift+j"], "command": "expand_selection", "args": {"to": "indentation"} },
|
||||
{ "keys": ["ctrl+shift+a"], "command": "expand_selection", "args": {"to": "tag"} },
|
||||
|
||||
{ "keys": ["ctrl+super+."], "command": "close_tag" },
|
||||
|
||||
{ "keys": ["alt+q"], "command": "toggle_record_macro" },
|
||||
{ "keys": ["alt+shift+q"], "command": "run_macro" },
|
||||
|
||||
{ "keys": ["ctrl+enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line.sublime-macro"} },
|
||||
{ "keys": ["ctrl+shift+enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line Before.sublime-macro"} },
|
||||
{ "keys": ["enter"], "command": "commit_completion", "context":
|
||||
[
|
||||
{ "key": "auto_complete_visible" },
|
||||
{ "key": "setting.auto_complete_commit_on_tab", "operand": false }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["ctrl+t"], "command": "show_overlay", "args": {"overlay": "goto", "show_files": true} },
|
||||
{ "keys": ["ctrl+p"], "command": "show_overlay", "args": {"overlay": "goto", "show_files": true} },
|
||||
{ "keys": ["ctrl+shift+p"], "command": "show_overlay", "args": {"overlay": "command_palette"} },
|
||||
{ "keys": ["ctrl+alt+p"], "command": "prompt_select_workspace" },
|
||||
{ "keys": ["ctrl+r"], "command": "show_overlay", "args": {"overlay": "goto", "text": "@"} },
|
||||
{ "keys": ["alt+g"], "command": "show_overlay", "args": {"overlay": "goto", "text": ":"} },
|
||||
{ "keys": ["f12"], "command": "goto_definition" },
|
||||
{ "keys": ["ctrl+super+down"], "command": "goto_definition" },
|
||||
{ "keys": ["ctrl+shift+r"], "command": "goto_symbol_in_project" },
|
||||
{ "keys": ["alt+minus"], "command": "jump_back" },
|
||||
{ "keys": ["alt+shift+minus"], "command": "jump_forward" },
|
||||
|
||||
{ "keys": ["ctrl+i"], "command": "show_panel", "args": {"panel": "incremental_find", "reverse": false} },
|
||||
{ "keys": ["ctrl+shift+i"], "command": "show_panel", "args": {"panel": "incremental_find", "reverse": true} },
|
||||
{ "keys": ["ctrl+f"], "command": "show_panel", "args": {"panel": "find", "reverse": false} },
|
||||
{ "keys": ["ctrl+super+f"], "command": "show_panel", "args": {"panel": "replace", "reverse": false} },
|
||||
{ "keys": ["ctrl+super+e"], "command": "replace_next" },
|
||||
{ "keys": ["ctrl+g"], "command": "find_next" },
|
||||
{ "keys": ["ctrl+shift+g"], "command": "find_prev" },
|
||||
{ "keys": ["ctrl+e"], "command": "slurp_find_string" },
|
||||
{ "keys": ["ctrl+shift+e"], "command": "slurp_replace_string" },
|
||||
|
||||
{ "keys": ["super+ctrl+g"], "command": "find_under" },
|
||||
{ "keys": ["shift+super+ctrl+g"], "command": "find_under_prev" },
|
||||
{ "keys": ["alt+ctrl+g"], "command": "find_all_under" },
|
||||
|
||||
{ "keys": ["ctrl+shift+f"], "command": "show_panel", "args": {"panel": "find_in_files"} },
|
||||
{ "keys": ["f4"], "command": "next_result" },
|
||||
{ "keys": ["shift+f4"], "command": "prev_result" },
|
||||
|
||||
{ "keys": ["f6"], "command": "toggle_setting", "args": {"setting": "spell_check"} },
|
||||
{ "keys": ["alt+f6"], "command": "next_misspelling" },
|
||||
{ "keys": ["alt+shift+f6"], "command": "prev_misspelling" },
|
||||
|
||||
{ "keys": ["alt+ctrl+up"], "command": "swap_line_up" },
|
||||
{ "keys": ["alt+ctrl+down"], "command": "swap_line_down" },
|
||||
|
||||
{ "keys": ["alt+backspace"], "command": "delete_word", "args": { "forward": false, "sub_words": true } },
|
||||
{ "keys": ["alt+delete"], "command": "delete_word", "args": { "forward": true, "sub_words": true } },
|
||||
|
||||
{ "keys": ["ctrl+forward_slash"], "command": "toggle_comment", "args": { "block": false } },
|
||||
{ "keys": ["ctrl+super+forward_slash"], "command": "toggle_comment", "args": { "block": true } },
|
||||
|
||||
{ "keys": ["ctrl+j"], "command": "join_lines" },
|
||||
{ "keys": ["ctrl+shift+d"], "command": "duplicate_line" },
|
||||
|
||||
{ "keys": ["alt+backquote"], "command": "show_panel", "args": {"panel": "console", "toggle": true} },
|
||||
|
||||
{ "keys": ["alt+space"], "command": "auto_complete" },
|
||||
{ "keys": ["alt+space"], "command": "replace_completion_with_auto_complete", "context":
|
||||
[
|
||||
{ "key": "last_command", "operator": "equal", "operand": "insert_best_completion" },
|
||||
{ "key": "auto_complete_visible", "operator": "equal", "operand": false },
|
||||
{ "key": "setting.tab_completion", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["ctrl+super+p"], "command": "show_scope_name" },
|
||||
{ "keys": ["alt+shift+p"], "command": "show_scope_name" },
|
||||
|
||||
{ "keys": ["f7"], "command": "build" },
|
||||
{ "keys": ["ctrl+b"], "command": "build" },
|
||||
{ "keys": ["ctrl+shift+b"], "command": "build", "args": {"select": true} },
|
||||
|
||||
{ "keys": ["alt+c"], "command": "cancel_build" },
|
||||
|
||||
{ "keys": ["alt+t"], "command": "transpose" },
|
||||
|
||||
{ "keys": ["f5"], "command": "sort_lines", "args": {"case_sensitive": false} },
|
||||
{ "keys": ["alt+f5"], "command": "sort_lines", "args": {"case_sensitive": true} },
|
||||
|
||||
// Auto-pair quotes
|
||||
{ "keys": ["\""], "command": "insert_snippet", "args": {"contents": "\"$0\""}, "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": "^(?:\t| |\\)|]|\\}|>|$)", "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "not_regex_contains", "operand": "[\"a-zA-Z0-9_]$", "match_all": true },
|
||||
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.double - punctuation.definition.string.end", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["\""], "command": "insert_snippet", "args": {"contents": "\"${0:$SELECTION}\""}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": false, "match_all": 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 },
|
||||
{ "key": "selector", "operator": "not_equal", "operand": "punctuation.definition.string.begin", "match_all": true },
|
||||
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.double - punctuation.definition.string.end", "match_all": true },
|
||||
]
|
||||
},
|
||||
{ "keys": ["backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Left Right.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\"$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^\"", "match_all": true },
|
||||
{ "key": "selector", "operator": "not_equal", "operand": "punctuation.definition.string.begin", "match_all": true },
|
||||
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.double - punctuation.definition.string.end", "match_all": true },
|
||||
]
|
||||
},
|
||||
|
||||
// Auto-pair single quotes
|
||||
{ "keys": ["'"], "command": "insert_snippet", "args": {"contents": "'$0'"}, "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": "^(?:\t| |\\)|]|\\}|>|$)", "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "not_regex_contains", "operand": "['a-zA-Z0-9_]$", "match_all": true },
|
||||
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.single - punctuation.definition.string.end", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["'"], "command": "insert_snippet", "args": {"contents": "'${0:$SELECTION}'"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": false, "match_all": 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 },
|
||||
{ "key": "selector", "operator": "not_equal", "operand": "punctuation.definition.string.begin", "match_all": true },
|
||||
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.single - punctuation.definition.string.end", "match_all": true },
|
||||
]
|
||||
},
|
||||
{ "keys": ["backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Left Right.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "'$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^'", "match_all": true },
|
||||
{ "key": "selector", "operator": "not_equal", "operand": "punctuation.definition.string.begin", "match_all": true },
|
||||
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.single - punctuation.definition.string.end", "match_all": true },
|
||||
]
|
||||
},
|
||||
|
||||
// Auto-pair brackets
|
||||
{ "keys": ["("], "command": "insert_snippet", "args": {"contents": "($0)"}, "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": "^(?:\t| |\\)|]|;|\\}|$)", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["("], "command": "insert_snippet", "args": {"contents": "(${0:$SELECTION})"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": false, "match_all": 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": ["backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Left Right.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\\($", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^\\)", "match_all": true }
|
||||
]
|
||||
},
|
||||
|
||||
// Auto-pair square brackets
|
||||
{ "keys": ["["], "command": "insert_snippet", "args": {"contents": "[$0]"}, "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": "^(?:\t| |\\)|]|;|\\}|$)", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["["], "command": "insert_snippet", "args": {"contents": "[${0:$SELECTION}]"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": false, "match_all": 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": ["backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Left Right.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\\[$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^\\]", "match_all": true }
|
||||
]
|
||||
},
|
||||
|
||||
// Auto-pair curly brackets
|
||||
{ "keys": ["{"], "command": "insert_snippet", "args": {"contents": "{$0}"}, "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": "^(?:\t| |\\)|]|\\}|$)", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["{"], "command": "wrap_block", "args": {"begin": "{", "end": "}"}, "context":
|
||||
[
|
||||
{ "key": "indented_block", "match_all": true },
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_match", "operand": "^$", "match_all": true },
|
||||
]
|
||||
},
|
||||
{ "keys": ["{"], "command": "insert_snippet", "args": {"contents": "{${0:$SELECTION}}"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": false, "match_all": 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": ["backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Left Right.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\\{$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^\\}", "match_all": true }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line in Braces.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_indent", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\\{$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^\\}", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["shift+enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line in Braces.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_indent", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\\{$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^\\}", "match_all": true }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["enter"], "command": "auto_indent_tag", "context":
|
||||
[
|
||||
{ "key": "setting.auto_indent", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "selector", "operator": "equal", "operand": "punctuation.definition.tag.begin", "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": ">$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^</", "match_all": true },
|
||||
]
|
||||
},
|
||||
{ "keys": ["shift+enter"], "command": "auto_indent_tag", "context":
|
||||
[
|
||||
{ "key": "setting.auto_indent", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "selector", "operator": "equal", "operand": "punctuation.definition.tag.begin", "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": ">$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^</", "match_all": true },
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"keys": ["ctrl+super+1"],
|
||||
"command": "set_layout",
|
||||
"args":
|
||||
{
|
||||
"cols": [0.0, 1.0],
|
||||
"rows": [0.0, 1.0],
|
||||
"cells": [[0, 0, 1, 1]]
|
||||
}
|
||||
},
|
||||
{
|
||||
"keys": ["ctrl+super+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+super+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+super+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+super+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+super+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": ["ctrl+super+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": ["alt+1"], "command": "focus_group", "args": { "group": 0 } },
|
||||
{ "keys": ["alt+2"], "command": "focus_group", "args": { "group": 1 } },
|
||||
{ "keys": ["alt+3"], "command": "focus_group", "args": { "group": 2 } },
|
||||
{ "keys": ["alt+4"], "command": "focus_group", "args": { "group": 3 } },
|
||||
{ "keys": ["alt+5"], "command": "focus_group", "args": { "group": 4 } },
|
||||
{ "keys": ["alt+6"], "command": "focus_group", "args": { "group": 5 } },
|
||||
{ "keys": ["alt+7"], "command": "focus_group", "args": { "group": 6 } },
|
||||
{ "keys": ["alt+8"], "command": "focus_group", "args": { "group": 7 } },
|
||||
{ "keys": ["alt+9"], "command": "focus_group", "args": { "group": 8 } },
|
||||
{ "keys": ["alt+shift+1"], "command": "move_to_group", "args": { "group": 0 } },
|
||||
{ "keys": ["alt+shift+2"], "command": "move_to_group", "args": { "group": 1 } },
|
||||
{ "keys": ["alt+shift+3"], "command": "move_to_group", "args": { "group": 2 } },
|
||||
{ "keys": ["alt+shift+4"], "command": "move_to_group", "args": { "group": 3 } },
|
||||
{ "keys": ["alt+shift+5"], "command": "move_to_group", "args": { "group": 4 } },
|
||||
{ "keys": ["alt+shift+6"], "command": "move_to_group", "args": { "group": 5 } },
|
||||
{ "keys": ["alt+shift+7"], "command": "move_to_group", "args": { "group": 6 } },
|
||||
{ "keys": ["alt+shift+8"], "command": "move_to_group", "args": { "group": 7 } },
|
||||
{ "keys": ["alt+shift+9"], "command": "move_to_group", "args": { "group": 8 } },
|
||||
{ "keys": ["alt+0"], "command": "focus_side_bar" },
|
||||
|
||||
{ "keys": ["ctrl+k", "ctrl+up"], "command": "new_pane" },
|
||||
{ "keys": ["ctrl+k", "ctrl+shift+up"], "command": "new_pane", "args": {"move": false} },
|
||||
{ "keys": ["ctrl+k", "ctrl+down"], "command": "close_pane" },
|
||||
{ "keys": ["ctrl+k", "ctrl+left"], "command": "focus_neighboring_group", "args": {"forward": false} },
|
||||
{ "keys": ["ctrl+k", "ctrl+right"], "command": "focus_neighboring_group" },
|
||||
{ "keys": ["ctrl+k", "ctrl+shift+left"], "command": "move_to_neighboring_group", "args": {"forward": false} },
|
||||
{ "keys": ["ctrl+k", "ctrl+shift+right"], "command": "move_to_neighboring_group" },
|
||||
|
||||
{ "keys": ["ctrl+1"], "command": "select_by_index", "args": { "index": 0 } },
|
||||
{ "keys": ["ctrl+2"], "command": "select_by_index", "args": { "index": 1 } },
|
||||
{ "keys": ["ctrl+3"], "command": "select_by_index", "args": { "index": 2 } },
|
||||
{ "keys": ["ctrl+4"], "command": "select_by_index", "args": { "index": 3 } },
|
||||
{ "keys": ["ctrl+5"], "command": "select_by_index", "args": { "index": 4 } },
|
||||
{ "keys": ["ctrl+6"], "command": "select_by_index", "args": { "index": 5 } },
|
||||
{ "keys": ["ctrl+7"], "command": "select_by_index", "args": { "index": 6 } },
|
||||
{ "keys": ["ctrl+8"], "command": "select_by_index", "args": { "index": 7 } },
|
||||
{ "keys": ["ctrl+9"], "command": "select_by_index", "args": { "index": 8 } },
|
||||
{ "keys": ["ctrl+0"], "command": "select_by_index", "args": { "index": 9 } },
|
||||
|
||||
{ "keys": ["f2"], "command": "next_bookmark" },
|
||||
{ "keys": ["shift+f2"], "command": "prev_bookmark" },
|
||||
{ "keys": ["ctrl+f2"], "command": "toggle_bookmark" },
|
||||
{ "keys": ["ctrl+shift+f2"], "command": "clear_bookmarks" },
|
||||
{ "keys": ["super+f2"], "command": "select_all_bookmarks" },
|
||||
|
||||
{ "keys": ["ctrl+k", "ctrl+u"], "command": "upper_case" },
|
||||
{ "keys": ["ctrl+k", "ctrl+l"], "command": "lower_case" },
|
||||
{ "keys": ["ctrl+k", "ctrl+space"], "command": "set_mark" },
|
||||
{ "keys": ["ctrl+k", "ctrl+a"], "command": "select_to_mark" },
|
||||
{ "keys": ["ctrl+k", "ctrl+w"], "command": "delete_to_mark" },
|
||||
{ "keys": ["ctrl+k", "ctrl+x"], "command": "swap_with_mark" },
|
||||
{ "keys": ["ctrl+k", "ctrl+g"], "command": "clear_bookmarks", "args": {"name": "mark"} },
|
||||
|
||||
{ "keys": ["ctrl+equals"], "command": "increase_font_size" },
|
||||
{ "keys": ["ctrl+plus"], "command": "increase_font_size" },
|
||||
{ "keys": ["ctrl+minus"], "command": "decrease_font_size" },
|
||||
|
||||
{ "keys": ["alt+shift+w"], "command": "insert_snippet", "args": { "name": "Packages/XML/Snippets/long-tag.sublime-snippet" } },
|
||||
|
||||
{ "keys": ["alt+shift+k"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Line.sublime-macro"} },
|
||||
|
||||
{ "keys": ["ctrl+super+q"], "command": "wrap_lines" },
|
||||
|
||||
{ "keys": ["ctrl+super+["], "command": "fold" },
|
||||
{ "keys": ["ctrl+super+]"], "command": "unfold" },
|
||||
{ "keys": ["ctrl+k", "ctrl+1"], "command": "fold_by_level", "args": {"level": 1} },
|
||||
{ "keys": ["ctrl+k", "ctrl+2"], "command": "fold_by_level", "args": {"level": 2} },
|
||||
{ "keys": ["ctrl+k", "ctrl+3"], "command": "fold_by_level", "args": {"level": 3} },
|
||||
{ "keys": ["ctrl+k", "ctrl+4"], "command": "fold_by_level", "args": {"level": 4} },
|
||||
{ "keys": ["ctrl+k", "ctrl+5"], "command": "fold_by_level", "args": {"level": 5} },
|
||||
{ "keys": ["ctrl+k", "ctrl+6"], "command": "fold_by_level", "args": {"level": 6} },
|
||||
{ "keys": ["ctrl+k", "ctrl+7"], "command": "fold_by_level", "args": {"level": 7} },
|
||||
{ "keys": ["ctrl+k", "ctrl+8"], "command": "fold_by_level", "args": {"level": 8} },
|
||||
{ "keys": ["ctrl+k", "ctrl+9"], "command": "fold_by_level", "args": {"level": 9} },
|
||||
{ "keys": ["ctrl+k", "ctrl+0"], "command": "unfold_all" },
|
||||
{ "keys": ["ctrl+k", "ctrl+j"], "command": "unfold_all" },
|
||||
{ "keys": ["ctrl+k", "ctrl+t"], "command": "fold_tag_attributes" },
|
||||
|
||||
{ "keys": ["ctrl+super+o"], "command": "toggle_overwrite" },
|
||||
|
||||
{ "keys": ["super+f2"], "command": "context_menu" },
|
||||
|
||||
{ "keys": ["ctrl+super+c"], "command": "toggle_case_sensitive", "context":
|
||||
[
|
||||
{ "key": "setting.is_widget", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["ctrl+super+r"], "command": "toggle_regex", "context":
|
||||
[
|
||||
{ "key": "setting.is_widget", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["ctrl+super+w"], "command": "toggle_whole_word", "context":
|
||||
[
|
||||
{ "key": "setting.is_widget", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["ctrl+super+a"], "command": "toggle_preserve_case", "context":
|
||||
[
|
||||
{ "key": "setting.is_widget", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
|
||||
// Find panel key bindings
|
||||
{ "keys": ["enter"], "command": "find_next", "context":
|
||||
[{"key": "panel", "operand": "find"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["shift+enter"], "command": "find_prev", "context":
|
||||
[{"key": "panel", "operand": "find"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["super+enter"], "command": "find_all", "args": {"close_panel": true},
|
||||
"context": [{"key": "panel", "operand": "find"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
|
||||
// Replace panel key bindings
|
||||
{ "keys": ["enter"], "command": "find_next", "context":
|
||||
[{"key": "panel", "operand": "replace"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["shift+enter"], "command": "find_prev", "context":
|
||||
[{"key": "panel", "operand": "replace"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["super+enter"], "command": "find_all", "args": {"close_panel": true},
|
||||
"context": [{"key": "panel", "operand": "replace"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["alt+super+enter"], "command": "replace_all", "args": {"close_panel": true},
|
||||
"context": [{"key": "panel", "operand": "replace"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
|
||||
// Incremental find panel key bindings
|
||||
{ "keys": ["enter"], "command": "hide_panel", "context":
|
||||
[{"key": "panel", "operand": "incremental_find"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["shift+enter"], "command": "find_prev", "context":
|
||||
[{"key": "panel", "operand": "incremental_find"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["super+enter"], "command": "find_all", "args": {"close_panel": true},
|
||||
"context": [{"key": "panel", "operand": "incremental_find"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
|
||||
{ "keys": ["ctrl+,"], "command": "edit_settings", "args":
|
||||
{
|
||||
"base_file": "${packages}/Default/Preferences.sublime-settings",
|
||||
"default": "// Settings in here override those in \"Default/Preferences.sublime-settings\",\n// and are overridden in turn by syntax-specific settings.\n{\n\t$0\n}\n"
|
||||
}
|
||||
},
|
||||
|
||||
{ "keys": ["ctrl+k", "ctrl+y"], "command": "yank" },
|
||||
{ "keys": ["ctrl+k", "ctrl+k"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete to Hard EOL.sublime-macro"} },
|
||||
{ "keys": ["ctrl+k", "ctrl+backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete to Hard BOL.sublime-macro"} },
|
||||
{ "keys": ["ctrl+k", "ctrl+c"], "command": "show_at_center" },
|
||||
|
||||
// These are OS X built in commands, and don't need to be listed here, but
|
||||
// doing so lets them show up in the menu
|
||||
{ "keys": ["alt+y"], "command": "yank" },
|
||||
{ "keys": ["ctrl+backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete to Hard BOL.sublime-macro"} },
|
||||
// ctrl+delete isn't a built in command, but makes sense anyway
|
||||
{ "keys": ["ctrl+delete"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete to Hard EOL.sublime-macro"} },
|
||||
{ "keys": ["alt+k"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete to Hard EOL.sublime-macro"} },
|
||||
{ "keys": ["alt+l"], "command": "show_at_center" },
|
||||
{ "keys": ["alt+o"], "command": "insert_snippet", "args": { "contents": "$0\n" } },
|
||||
{ "keys": ["alt+ctrl+d"], "command": "noop" },
|
||||
{ "keys": ["alt+ctrl+shift+d"], "command": "noop" },
|
||||
|
||||
// HTML, XML close tag
|
||||
{ "keys": ["/"], "command": "close_tag", "args": { "insert_slash": true }, "context":
|
||||
[
|
||||
{ "key": "selector", "operator": "equal", "operand": "(text.html, text.xml) - string - comment", "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_match", "operand": ".*<$", "match_all": true },
|
||||
{ "key": "setting.auto_close_tags" }
|
||||
]
|
||||
}
|
||||
]
|
||||
734
references/app-configs/sublime-text3/linux.sublime-keybinds.org
Normal file
734
references/app-configs/sublime-text3/linux.sublime-keybinds.org
Normal file
@@ -0,0 +1,734 @@
|
||||
[
|
||||
{ "keys": ["ctrl+q"], "command": "exit" },
|
||||
|
||||
{ "keys": ["ctrl+shift+n"], "command": "new_window" },
|
||||
{ "keys": ["ctrl+shift+w"], "command": "close_window" },
|
||||
{ "keys": ["ctrl+o"], "command": "prompt_open_file" },
|
||||
{ "keys": ["ctrl+shift+t"], "command": "reopen_last_file" },
|
||||
{ "keys": ["alt+o"], "command": "switch_file", "args": {"extensions": ["cpp", "cxx", "cc", "c", "hpp", "hxx", "hh", "h", "ipp", "inl", "m", "mm"]} },
|
||||
{ "keys": ["ctrl+n"], "command": "new_file" },
|
||||
{ "keys": ["ctrl+s"], "command": "save" },
|
||||
{ "keys": ["ctrl+shift+s"], "command": "prompt_save_as" },
|
||||
{ "keys": ["ctrl+f4"], "command": "close_file" },
|
||||
{ "keys": ["ctrl+w"], "command": "close" },
|
||||
|
||||
{ "keys": ["ctrl+k", "ctrl+b"], "command": "toggle_side_bar" },
|
||||
{ "keys": ["f11"], "command": "toggle_full_screen" },
|
||||
{ "keys": ["shift+f11"], "command": "toggle_distraction_free" },
|
||||
|
||||
{ "keys": ["backspace"], "command": "left_delete" },
|
||||
{ "keys": ["shift+backspace"], "command": "left_delete" },
|
||||
{ "keys": ["ctrl+shift+backspace"], "command": "left_delete" },
|
||||
{ "keys": ["delete"], "command": "right_delete" },
|
||||
{ "keys": ["enter"], "command": "insert", "args": {"characters": "\n"} },
|
||||
{ "keys": ["shift+enter"], "command": "insert", "args": {"characters": "\n"} },
|
||||
{ "keys": ["keypad_enter"], "command": "insert", "args": {"characters": "\n"} },
|
||||
{ "keys": ["shift+keypad_enter"], "command": "insert", "args": {"characters": "\n"} },
|
||||
|
||||
{ "keys": ["ctrl+z"], "command": "undo" },
|
||||
{ "keys": ["ctrl+shift+z"], "command": "redo" },
|
||||
{ "keys": ["ctrl+y"], "command": "redo_or_repeat" },
|
||||
{ "keys": ["ctrl+u"], "command": "soft_undo" },
|
||||
{ "keys": ["ctrl+shift+u"], "command": "soft_redo" },
|
||||
|
||||
{ "keys": ["shift+delete"], "command": "cut" },
|
||||
{ "keys": ["ctrl+insert"], "command": "copy" },
|
||||
{ "keys": ["shift+insert"], "command": "paste" },
|
||||
|
||||
// These two key bindings should replace the above three if you'd prefer
|
||||
// the traditional X11 behavior of shift+insert pasting from the primary
|
||||
// selection. The above CUA keys are the default, to match most GTK
|
||||
// applications.
|
||||
//{ "keys": ["shift+insert"], "command": "paste", "args": {"clipboard": "selection"} },
|
||||
//{ "keys": ["shift+delete"], "command": "right_delete" },
|
||||
|
||||
{ "keys": ["ctrl+x"], "command": "cut" },
|
||||
{ "keys": ["ctrl+c"], "command": "copy" },
|
||||
{ "keys": ["ctrl+v"], "command": "paste" },
|
||||
{ "keys": ["ctrl+shift+v"], "command": "paste_and_indent" },
|
||||
{ "keys": ["ctrl+k", "ctrl+v"], "command": "paste_from_history" },
|
||||
|
||||
{ "keys": ["left"], "command": "move", "args": {"by": "characters", "forward": false} },
|
||||
{ "keys": ["right"], "command": "move", "args": {"by": "characters", "forward": true} },
|
||||
{ "keys": ["up"], "command": "move", "args": {"by": "lines", "forward": false} },
|
||||
{ "keys": ["down"], "command": "move", "args": {"by": "lines", "forward": true} },
|
||||
{ "keys": ["shift+left"], "command": "move", "args": {"by": "characters", "forward": false, "extend": true} },
|
||||
{ "keys": ["shift+right"], "command": "move", "args": {"by": "characters", "forward": true, "extend": true} },
|
||||
{ "keys": ["shift+up"], "command": "move", "args": {"by": "lines", "forward": false, "extend": true} },
|
||||
{ "keys": ["shift+down"], "command": "move", "args": {"by": "lines", "forward": true, "extend": true} },
|
||||
|
||||
{ "keys": ["ctrl+left"], "command": "move", "args": {"by": "words", "forward": false} },
|
||||
{ "keys": ["ctrl+right"], "command": "move", "args": {"by": "word_ends", "forward": true} },
|
||||
{ "keys": ["ctrl+shift+left"], "command": "move", "args": {"by": "words", "forward": false, "extend": true} },
|
||||
{ "keys": ["ctrl+shift+right"], "command": "move", "args": {"by": "word_ends", "forward": true, "extend": true} },
|
||||
|
||||
{ "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} },
|
||||
|
||||
{ "keys": ["alt+shift+up"], "command": "select_lines", "args": {"forward": false} },
|
||||
{ "keys": ["alt+shift+down"], "command": "select_lines", "args": {"forward": true} },
|
||||
|
||||
{ "keys": ["pageup"], "command": "move", "args": {"by": "pages", "forward": false} },
|
||||
{ "keys": ["pagedown"], "command": "move", "args": {"by": "pages", "forward": true} },
|
||||
{ "keys": ["shift+pageup"], "command": "move", "args": {"by": "pages", "forward": false, "extend": true} },
|
||||
{ "keys": ["shift+pagedown"], "command": "move", "args": {"by": "pages", "forward": true, "extend": true} },
|
||||
|
||||
{ "keys": ["home"], "command": "move_to", "args": {"to": "bol", "extend": false} },
|
||||
{ "keys": ["end"], "command": "move_to", "args": {"to": "eol", "extend": false} },
|
||||
{ "keys": ["shift+home"], "command": "move_to", "args": {"to": "bol", "extend": true} },
|
||||
{ "keys": ["shift+end"], "command": "move_to", "args": {"to": "eol", "extend": true} },
|
||||
{ "keys": ["ctrl+home"], "command": "move_to", "args": {"to": "bof", "extend": false} },
|
||||
{ "keys": ["ctrl+end"], "command": "move_to", "args": {"to": "eof", "extend": false} },
|
||||
{ "keys": ["ctrl+shift+home"], "command": "move_to", "args": {"to": "bof", "extend": true} },
|
||||
{ "keys": ["ctrl+shift+end"], "command": "move_to", "args": {"to": "eof", "extend": true} },
|
||||
|
||||
{ "keys": ["ctrl+up"], "command": "scroll_lines", "args": {"amount": 1.0 } },
|
||||
{ "keys": ["ctrl+down"], "command": "scroll_lines", "args": {"amount": -1.0 } },
|
||||
|
||||
{ "keys": ["ctrl+pagedown"], "command": "next_view" },
|
||||
{ "keys": ["ctrl+pageup"], "command": "prev_view" },
|
||||
|
||||
{ "keys": ["ctrl+tab"], "command": "next_view_in_stack" },
|
||||
{ "keys": ["ctrl+shift+tab"], "command": "prev_view_in_stack" },
|
||||
|
||||
{ "keys": ["ctrl+a"], "command": "select_all" },
|
||||
{ "keys": ["ctrl+shift+l"], "command": "split_selection_into_lines" },
|
||||
{ "keys": ["escape"], "command": "single_selection", "context":
|
||||
[
|
||||
{ "key": "num_selections", "operator": "not_equal", "operand": 1 }
|
||||
]
|
||||
},
|
||||
{ "keys": ["escape"], "command": "clear_fields", "context":
|
||||
[
|
||||
{ "key": "has_next_field", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["escape"], "command": "clear_fields", "context":
|
||||
[
|
||||
{ "key": "has_prev_field", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["escape"], "command": "hide_panel", "args": {"cancel": true},
|
||||
"context":
|
||||
[
|
||||
{ "key": "panel_visible", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["escape"], "command": "hide_overlay", "context":
|
||||
[
|
||||
{ "key": "overlay_visible", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["escape"], "command": "hide_popup", "context":
|
||||
[
|
||||
{ "key": "popup_visible", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["escape"], "command": "hide_auto_complete", "context":
|
||||
[
|
||||
{ "key": "auto_complete_visible", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "\t", "exact": true} },
|
||||
{ "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "\t", "exact": false},
|
||||
"context":
|
||||
[
|
||||
{ "key": "setting.tab_completion", "operator": "equal", "operand": true },
|
||||
{ "key": "preceding_text", "operator": "not_regex_match", "operand": ".*\\b[0-9]+$", "match_all": true },
|
||||
]
|
||||
},
|
||||
{ "keys": ["tab"], "command": "replace_completion_with_next_completion", "context":
|
||||
[
|
||||
{ "key": "last_command", "operator": "equal", "operand": "insert_best_completion" },
|
||||
{ "key": "setting.tab_completion", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["tab"], "command": "reindent", "context":
|
||||
[
|
||||
{ "key": "setting.auto_indent", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_match", "operand": "^$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_match", "operand": "^$", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["tab"], "command": "indent", "context":
|
||||
[
|
||||
{ "key": "text", "operator": "regex_contains", "operand": "\n" }
|
||||
]
|
||||
},
|
||||
{ "keys": ["tab"], "command": "next_field", "context":
|
||||
[
|
||||
{ "key": "has_next_field", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["tab"], "command": "commit_completion", "context":
|
||||
[
|
||||
{ "key": "auto_complete_visible" },
|
||||
{ "key": "setting.auto_complete_commit_on_tab" }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["shift+tab"], "command": "insert", "args": {"characters": "\t"} },
|
||||
{ "keys": ["shift+tab"], "command": "unindent", "context":
|
||||
[
|
||||
{ "key": "setting.shift_tab_unindent", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["shift+tab"], "command": "unindent", "context":
|
||||
[
|
||||
{ "key": "preceding_text", "operator": "regex_match", "operand": "^[\t ]*" }
|
||||
]
|
||||
},
|
||||
{ "keys": ["shift+tab"], "command": "unindent", "context":
|
||||
[
|
||||
{ "key": "text", "operator": "regex_contains", "operand": "\n" }
|
||||
]
|
||||
},
|
||||
{ "keys": ["shift+tab"], "command": "prev_field", "context":
|
||||
[
|
||||
{ "key": "has_prev_field", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["ctrl+]"], "command": "indent" },
|
||||
{ "keys": ["ctrl+["], "command": "unindent" },
|
||||
|
||||
{ "keys": ["insert"], "command": "toggle_overwrite" },
|
||||
|
||||
{ "keys": ["ctrl+l"], "command": "expand_selection", "args": {"to": "line"} },
|
||||
{ "keys": ["ctrl+d"], "command": "find_under_expand" },
|
||||
{ "keys": ["ctrl+k", "ctrl+d"], "command": "find_under_expand_skip" },
|
||||
{ "keys": ["ctrl+shift+space"], "command": "expand_selection", "args": {"to": "scope"} },
|
||||
{ "keys": ["ctrl+shift+m"], "command": "expand_selection", "args": {"to": "brackets"} },
|
||||
{ "keys": ["ctrl+m"], "command": "move_to", "args": {"to": "brackets"} },
|
||||
{ "keys": ["ctrl+shift+j"], "command": "expand_selection", "args": {"to": "indentation"} },
|
||||
{ "keys": ["ctrl+shift+a"], "command": "expand_selection", "args": {"to": "tag"} },
|
||||
|
||||
{ "keys": ["alt+."], "command": "close_tag" },
|
||||
|
||||
{ "keys": ["ctrl+alt+q"], "command": "toggle_record_macro" },
|
||||
{ "keys": ["ctrl+alt+shift+q"], "command": "run_macro" },
|
||||
|
||||
{ "keys": ["ctrl+enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line.sublime-macro"} },
|
||||
{ "keys": ["ctrl+shift+enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line Before.sublime-macro"} },
|
||||
{ "keys": ["enter"], "command": "commit_completion", "context":
|
||||
[
|
||||
{ "key": "auto_complete_visible" },
|
||||
{ "key": "setting.auto_complete_commit_on_tab", "operand": false }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["ctrl+p"], "command": "show_overlay", "args": {"overlay": "goto", "show_files": true} },
|
||||
{ "keys": ["ctrl+shift+p"], "command": "show_overlay", "args": {"overlay": "command_palette"} },
|
||||
{ "keys": ["ctrl+alt+p"], "command": "prompt_select_workspace" },
|
||||
{ "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": "#"} },
|
||||
{ "keys": ["f12"], "command": "goto_definition" },
|
||||
{ "keys": ["shift+f12"], "command": "goto_reference" },
|
||||
{ "keys": ["ctrl+shift+r"], "command": "goto_symbol_in_project" },
|
||||
{ "keys": ["alt+-"], "command": "jump_back" },
|
||||
{ "keys": ["alt+shift+-"], "command": "jump_forward" },
|
||||
{ "keys": ["alt+keypad_minus"], "command": "jump_back" },
|
||||
{ "keys": ["alt+shift+keypad_minus"], "command": "jump_forward" },
|
||||
|
||||
{ "keys": ["ctrl+i"], "command": "show_panel", "args": {"panel": "incremental_find", "reverse": false} },
|
||||
{ "keys": ["ctrl+shift+i"], "command": "show_panel", "args": {"panel": "incremental_find", "reverse": true} },
|
||||
{ "keys": ["ctrl+f"], "command": "show_panel", "args": {"panel": "find", "reverse": false} },
|
||||
{ "keys": ["ctrl+h"], "command": "show_panel", "args": {"panel": "replace", "reverse": false} },
|
||||
{ "keys": ["ctrl+shift+h"], "command": "replace_next" },
|
||||
{ "keys": ["f3"], "command": "find_next" },
|
||||
{ "keys": ["shift+f3"], "command": "find_prev" },
|
||||
{ "keys": ["ctrl+f3"], "command": "find_under" },
|
||||
{ "keys": ["ctrl+shift+f3"], "command": "find_under_prev" },
|
||||
{ "keys": ["alt+f3"], "command": "find_all_under" },
|
||||
{ "keys": ["ctrl+e"], "command": "slurp_find_string" },
|
||||
{ "keys": ["ctrl+shift+e"], "command": "slurp_replace_string" },
|
||||
{ "keys": ["ctrl+shift+f"], "command": "show_panel", "args": {"panel": "find_in_files"} },
|
||||
{ "keys": ["f4"], "command": "next_result" },
|
||||
{ "keys": ["shift+f4"], "command": "prev_result" },
|
||||
|
||||
{ "keys": ["f6"], "command": "toggle_setting", "args": {"setting": "spell_check"} },
|
||||
{ "keys": ["ctrl+f6"], "command": "next_misspelling" },
|
||||
{ "keys": ["ctrl+shift+f6"], "command": "prev_misspelling" },
|
||||
|
||||
{ "keys": ["ctrl+shift+up"], "command": "swap_line_up" },
|
||||
{ "keys": ["ctrl+shift+down"], "command": "swap_line_down" },
|
||||
|
||||
{ "keys": ["ctrl+backspace"], "command": "delete_word", "args": { "forward": false } },
|
||||
{ "keys": ["ctrl+shift+backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete to Hard BOL.sublime-macro"} },
|
||||
|
||||
{ "keys": ["ctrl+delete"], "command": "delete_word", "args": { "forward": true } },
|
||||
{ "keys": ["ctrl+shift+delete"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete to Hard EOL.sublime-macro"} },
|
||||
|
||||
{ "keys": ["ctrl+/"], "command": "toggle_comment", "args": { "block": false } },
|
||||
{ "keys": ["ctrl+shift+/"], "command": "toggle_comment", "args": { "block": true } },
|
||||
|
||||
{ "keys": ["ctrl+j"], "command": "join_lines" },
|
||||
{ "keys": ["ctrl+shift+d"], "command": "duplicate_line" },
|
||||
|
||||
{ "keys": ["ctrl+`"], "command": "show_panel", "args": {"panel": "console", "toggle": true} },
|
||||
|
||||
{ "keys": ["alt+/"], "command": "auto_complete" },
|
||||
{ "keys": ["alt+/"], "command": "replace_completion_with_auto_complete", "context":
|
||||
[
|
||||
{ "key": "last_command", "operator": "equal", "operand": "insert_best_completion" },
|
||||
{ "key": "auto_complete_visible", "operator": "equal", "operand": false },
|
||||
{ "key": "setting.tab_completion", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["ctrl+alt+shift+p"], "command": "show_scope_name" },
|
||||
|
||||
{ "keys": ["f7"], "command": "build" },
|
||||
{ "keys": ["ctrl+b"], "command": "build" },
|
||||
{ "keys": ["ctrl+shift+b"], "command": "build", "args": {"select": true} },
|
||||
{ "keys": ["ctrl+break"], "command": "cancel_build" },
|
||||
|
||||
{ "keys": ["ctrl+t"], "command": "transpose" },
|
||||
|
||||
{ "keys": ["f9"], "command": "sort_lines", "args": {"case_sensitive": false} },
|
||||
{ "keys": ["ctrl+f9"], "command": "sort_lines", "args": {"case_sensitive": true} },
|
||||
|
||||
// Auto-pair quotes
|
||||
{ "keys": ["\""], "command": "insert_snippet", "args": {"contents": "\"$0\""}, "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": "^(?:\t| |\\)|]|\\}|>|$)", "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "not_regex_contains", "operand": "[\"a-zA-Z0-9_]$", "match_all": true },
|
||||
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.double - punctuation.definition.string.end", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["\""], "command": "insert_snippet", "args": {"contents": "\"${0:$SELECTION}\""}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": false, "match_all": 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 },
|
||||
{ "key": "selector", "operator": "not_equal", "operand": "punctuation.definition.string.begin", "match_all": true },
|
||||
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.double - punctuation.definition.string.end", "match_all": true },
|
||||
]
|
||||
},
|
||||
{ "keys": ["backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Left Right.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\"$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^\"", "match_all": true },
|
||||
{ "key": "selector", "operator": "not_equal", "operand": "punctuation.definition.string.begin", "match_all": true },
|
||||
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.double - punctuation.definition.string.end", "match_all": true },
|
||||
]
|
||||
},
|
||||
|
||||
// Auto-pair single quotes
|
||||
{ "keys": ["'"], "command": "insert_snippet", "args": {"contents": "'$0'"}, "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": "^(?:\t| |\\)|]|\\}|>|$)", "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "not_regex_contains", "operand": "['a-zA-Z0-9_]$", "match_all": true },
|
||||
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.single - punctuation.definition.string.end", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["'"], "command": "insert_snippet", "args": {"contents": "'${0:$SELECTION}'"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": false, "match_all": 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 },
|
||||
{ "key": "selector", "operator": "not_equal", "operand": "punctuation.definition.string.begin", "match_all": true },
|
||||
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.single - punctuation.definition.string.end", "match_all": true },
|
||||
]
|
||||
},
|
||||
{ "keys": ["backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Left Right.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "'$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^'", "match_all": true },
|
||||
{ "key": "selector", "operator": "not_equal", "operand": "punctuation.definition.string.begin", "match_all": true },
|
||||
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.single - punctuation.definition.string.end", "match_all": true },
|
||||
]
|
||||
},
|
||||
|
||||
// Auto-pair brackets
|
||||
{ "keys": ["("], "command": "insert_snippet", "args": {"contents": "($0)"}, "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": "^(?:\t| |\\)|]|;|\\}|$)", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["("], "command": "insert_snippet", "args": {"contents": "(${0:$SELECTION})"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": false, "match_all": 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": ["backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Left Right.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\\($", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^\\)", "match_all": true }
|
||||
]
|
||||
},
|
||||
|
||||
// Auto-pair square brackets
|
||||
{ "keys": ["["], "command": "insert_snippet", "args": {"contents": "[$0]"}, "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": "^(?:\t| |\\)|]|;|\\}|$)", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["["], "command": "insert_snippet", "args": {"contents": "[${0:$SELECTION}]"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": false, "match_all": 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": ["backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Left Right.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\\[$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^\\]", "match_all": true }
|
||||
]
|
||||
},
|
||||
|
||||
// Auto-pair curly brackets
|
||||
{ "keys": ["{"], "command": "insert_snippet", "args": {"contents": "{$0}"}, "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": "^(?:\t| |\\)|]|\\}|$)", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["{"], "command": "wrap_block", "args": {"begin": "{", "end": "}"}, "context":
|
||||
[
|
||||
{ "key": "indented_block", "match_all": true },
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_match", "operand": "^$", "match_all": true },
|
||||
]
|
||||
},
|
||||
{ "keys": ["{"], "command": "insert_snippet", "args": {"contents": "{${0:$SELECTION}}"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": false, "match_all": 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": ["backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Left Right.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\\{$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^\\}", "match_all": true }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line in Braces.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_indent", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\\{$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^\\}", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["shift+enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line in Braces.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_indent", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\\{$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^\\}", "match_all": true }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["enter"], "command": "auto_indent_tag", "context":
|
||||
[
|
||||
{ "key": "setting.auto_indent", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "selector", "operator": "equal", "operand": "punctuation.definition.tag.begin", "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": ">$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^</", "match_all": true },
|
||||
]
|
||||
},
|
||||
{ "keys": ["shift+enter"], "command": "auto_indent_tag", "context":
|
||||
[
|
||||
{ "key": "setting.auto_indent", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "selector", "operator": "equal", "operand": "punctuation.definition.tag.begin", "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": ">$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^</", "match_all": true },
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"keys": ["alt+shift+1"],
|
||||
"command": "set_layout",
|
||||
"args":
|
||||
{
|
||||
"cols": [0.0, 1.0],
|
||||
"rows": [0.0, 1.0],
|
||||
"cells": [[0, 0, 1, 1]]
|
||||
}
|
||||
},
|
||||
{
|
||||
"keys": ["alt+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": ["alt+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": ["alt+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]]
|
||||
}
|
||||
},
|
||||
{
|
||||
"keys": ["alt+shift+8"],
|
||||
"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": ["alt+shift+9"],
|
||||
"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": ["alt+shift+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+1"], "command": "focus_group", "args": { "group": 0 } },
|
||||
{ "keys": ["ctrl+2"], "command": "focus_group", "args": { "group": 1 } },
|
||||
{ "keys": ["ctrl+3"], "command": "focus_group", "args": { "group": 2 } },
|
||||
{ "keys": ["ctrl+4"], "command": "focus_group", "args": { "group": 3 } },
|
||||
{ "keys": ["ctrl+5"], "command": "focus_group", "args": { "group": 4 } },
|
||||
{ "keys": ["ctrl+6"], "command": "focus_group", "args": { "group": 5 } },
|
||||
{ "keys": ["ctrl+7"], "command": "focus_group", "args": { "group": 6 } },
|
||||
{ "keys": ["ctrl+8"], "command": "focus_group", "args": { "group": 7 } },
|
||||
{ "keys": ["ctrl+9"], "command": "focus_group", "args": { "group": 8 } },
|
||||
{ "keys": ["ctrl+shift+1"], "command": "move_to_group", "args": { "group": 0 } },
|
||||
{ "keys": ["ctrl+shift+2"], "command": "move_to_group", "args": { "group": 1 } },
|
||||
{ "keys": ["ctrl+shift+3"], "command": "move_to_group", "args": { "group": 2 } },
|
||||
{ "keys": ["ctrl+shift+4"], "command": "move_to_group", "args": { "group": 3 } },
|
||||
{ "keys": ["ctrl+shift+5"], "command": "move_to_group", "args": { "group": 4 } },
|
||||
{ "keys": ["ctrl+shift+6"], "command": "move_to_group", "args": { "group": 5 } },
|
||||
{ "keys": ["ctrl+shift+7"], "command": "move_to_group", "args": { "group": 6 } },
|
||||
{ "keys": ["ctrl+shift+8"], "command": "move_to_group", "args": { "group": 7 } },
|
||||
{ "keys": ["ctrl+shift+9"], "command": "move_to_group", "args": { "group": 8 } },
|
||||
{ "keys": ["ctrl+0"], "command": "focus_side_bar" },
|
||||
|
||||
{ "keys": ["ctrl+k", "ctrl+up"], "command": "new_pane" },
|
||||
{ "keys": ["ctrl+k", "ctrl+shift+up"], "command": "new_pane", "args": {"move": false} },
|
||||
{ "keys": ["ctrl+k", "ctrl+down"], "command": "close_pane" },
|
||||
{ "keys": ["ctrl+k", "ctrl+left"], "command": "focus_neighboring_group", "args": {"forward": false} },
|
||||
{ "keys": ["ctrl+k", "ctrl+right"], "command": "focus_neighboring_group" },
|
||||
{ "keys": ["ctrl+k", "ctrl+shift+left"], "command": "move_to_neighboring_group", "args": {"forward": false} },
|
||||
{ "keys": ["ctrl+k", "ctrl+shift+right"], "command": "move_to_neighboring_group" },
|
||||
|
||||
{ "keys": ["alt+1"], "command": "select_by_index", "args": { "index": 0 } },
|
||||
{ "keys": ["alt+2"], "command": "select_by_index", "args": { "index": 1 } },
|
||||
{ "keys": ["alt+3"], "command": "select_by_index", "args": { "index": 2 } },
|
||||
{ "keys": ["alt+4"], "command": "select_by_index", "args": { "index": 3 } },
|
||||
{ "keys": ["alt+5"], "command": "select_by_index", "args": { "index": 4 } },
|
||||
{ "keys": ["alt+6"], "command": "select_by_index", "args": { "index": 5 } },
|
||||
{ "keys": ["alt+7"], "command": "select_by_index", "args": { "index": 6 } },
|
||||
{ "keys": ["alt+8"], "command": "select_by_index", "args": { "index": 7 } },
|
||||
{ "keys": ["alt+9"], "command": "select_by_index", "args": { "index": 8 } },
|
||||
{ "keys": ["alt+0"], "command": "select_by_index", "args": { "index": 9 } },
|
||||
|
||||
{ "keys": ["f2"], "command": "next_bookmark" },
|
||||
{ "keys": ["shift+f2"], "command": "prev_bookmark" },
|
||||
{ "keys": ["ctrl+f2"], "command": "toggle_bookmark" },
|
||||
{ "keys": ["ctrl+shift+f2"], "command": "clear_bookmarks" },
|
||||
{ "keys": ["alt+f2"], "command": "select_all_bookmarks" },
|
||||
|
||||
{ "keys": ["ctrl+shift+k"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Line.sublime-macro"} },
|
||||
|
||||
{ "keys": ["alt+q"], "command": "wrap_lines" },
|
||||
|
||||
{ "keys": ["ctrl+k", "ctrl+u"], "command": "upper_case" },
|
||||
{ "keys": ["ctrl+k", "ctrl+l"], "command": "lower_case" },
|
||||
|
||||
{ "keys": ["ctrl+k", "ctrl+space"], "command": "set_mark" },
|
||||
{ "keys": ["ctrl+k", "ctrl+a"], "command": "select_to_mark" },
|
||||
{ "keys": ["ctrl+k", "ctrl+w"], "command": "delete_to_mark" },
|
||||
{ "keys": ["ctrl+k", "ctrl+x"], "command": "swap_with_mark" },
|
||||
{ "keys": ["ctrl+k", "ctrl+y"], "command": "yank" },
|
||||
{ "keys": ["ctrl+k", "ctrl+k"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete to Hard EOL.sublime-macro"} },
|
||||
{ "keys": ["ctrl+k", "ctrl+backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete to Hard BOL.sublime-macro"} },
|
||||
{ "keys": ["ctrl+k", "ctrl+g"], "command": "clear_bookmarks", "args": {"name": "mark"} },
|
||||
{ "keys": ["ctrl+k", "ctrl+c"], "command": "show_at_center" },
|
||||
|
||||
{ "keys": ["ctrl++"], "command": "increase_font_size" },
|
||||
{ "keys": ["ctrl+="], "command": "increase_font_size" },
|
||||
{ "keys": ["ctrl+-"], "command": "decrease_font_size" },
|
||||
|
||||
{ "keys": ["alt+shift+w"], "command": "insert_snippet", "args": { "name": "Packages/XML/Snippets/long-tag.sublime-snippet" } },
|
||||
|
||||
{ "keys": ["ctrl+shift+["], "command": "fold" },
|
||||
{ "keys": ["ctrl+shift+]"], "command": "unfold" },
|
||||
{ "keys": ["ctrl+k", "ctrl+1"], "command": "fold_by_level", "args": {"level": 1} },
|
||||
{ "keys": ["ctrl+k", "ctrl+2"], "command": "fold_by_level", "args": {"level": 2} },
|
||||
{ "keys": ["ctrl+k", "ctrl+3"], "command": "fold_by_level", "args": {"level": 3} },
|
||||
{ "keys": ["ctrl+k", "ctrl+4"], "command": "fold_by_level", "args": {"level": 4} },
|
||||
{ "keys": ["ctrl+k", "ctrl+5"], "command": "fold_by_level", "args": {"level": 5} },
|
||||
{ "keys": ["ctrl+k", "ctrl+6"], "command": "fold_by_level", "args": {"level": 6} },
|
||||
{ "keys": ["ctrl+k", "ctrl+7"], "command": "fold_by_level", "args": {"level": 7} },
|
||||
{ "keys": ["ctrl+k", "ctrl+8"], "command": "fold_by_level", "args": {"level": 8} },
|
||||
{ "keys": ["ctrl+k", "ctrl+9"], "command": "fold_by_level", "args": {"level": 9} },
|
||||
{ "keys": ["ctrl+k", "ctrl+0"], "command": "unfold_all" },
|
||||
{ "keys": ["ctrl+k", "ctrl+j"], "command": "unfold_all" },
|
||||
{ "keys": ["ctrl+k", "ctrl+t"], "command": "fold_tag_attributes" },
|
||||
|
||||
{ "keys": ["context_menu"], "command": "context_menu" },
|
||||
|
||||
{ "keys": ["alt+c"], "command": "toggle_case_sensitive", "context":
|
||||
[
|
||||
{ "key": "setting.is_widget", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["alt+r"], "command": "toggle_regex", "context":
|
||||
[
|
||||
{ "key": "setting.is_widget", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["alt+w"], "command": "toggle_whole_word", "context":
|
||||
[
|
||||
{ "key": "setting.is_widget", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["alt+a"], "command": "toggle_preserve_case", "context":
|
||||
[
|
||||
{ "key": "setting.is_widget", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
|
||||
// Find panel key bindings
|
||||
{ "keys": ["enter"], "command": "find_next", "context":
|
||||
[{"key": "panel", "operand": "find"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["shift+enter"], "command": "find_prev", "context":
|
||||
[{"key": "panel", "operand": "find"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["alt+enter"], "command": "find_all", "args": {"close_panel": true},
|
||||
"context": [{"key": "panel", "operand": "find"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
|
||||
// Replace panel key bindings
|
||||
{ "keys": ["enter"], "command": "find_next", "context":
|
||||
[{"key": "panel", "operand": "replace"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["shift+enter"], "command": "find_prev", "context":
|
||||
[{"key": "panel", "operand": "replace"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["alt+enter"], "command": "find_all", "args": {"close_panel": true},
|
||||
"context": [{"key": "panel", "operand": "replace"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["ctrl+alt+enter"], "command": "replace_all", "args": {"close_panel": true},
|
||||
"context": [{"key": "panel", "operand": "replace"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
|
||||
// Incremental find panel key bindings
|
||||
{ "keys": ["enter"], "command": "hide_panel", "context":
|
||||
[{"key": "panel", "operand": "incremental_find"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["shift+enter"], "command": "find_prev", "context":
|
||||
[{"key": "panel", "operand": "incremental_find"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["alt+enter"], "command": "find_all", "args": {"close_panel": true},
|
||||
"context": [{"key": "panel", "operand": "incremental_find"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
|
||||
// Find in Files panel key bindings
|
||||
{ "keys": ["alt+enter"], "command": "find_all",
|
||||
"context": [{"key": "panel", "operand": "find_in_files"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["ctrl+alt+enter"], "command": "replace_all",
|
||||
"context": [{"key": "panel", "operand": "find_in_files"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
|
||||
// HTML, XML close tag
|
||||
{ "keys": ["/"], "command": "close_tag", "args": { "insert_slash": true }, "context":
|
||||
[
|
||||
{ "key": "selector", "operator": "equal", "operand": "(text.html, text.xml) - string - comment", "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_match", "operand": ".*<$", "match_all": true },
|
||||
{ "key": "setting.auto_close_tags" }
|
||||
]
|
||||
}
|
||||
]
|
||||
706
references/app-configs/sublime-text3/mac.sublime-keybinds.json
Normal file
706
references/app-configs/sublime-text3/mac.sublime-keybinds.json
Normal file
@@ -0,0 +1,706 @@
|
||||
/*
|
||||
On OS X, basic text manipulations (left, right, command+left, etc) make use of the system key bindings,
|
||||
and don't need to be repeated here. Anything listed here will take precedence, however.
|
||||
*/
|
||||
[
|
||||
{ "keys": ["super+shift+n"], "command": "new_window" },
|
||||
{ "keys": ["super+shift+w"], "command": "close_window" },
|
||||
{ "keys": ["super+o"], "command": "prompt_open" },
|
||||
{ "keys": ["super+shift+t"], "command": "reopen_last_file" },
|
||||
{ "keys": ["super+alt+up"], "command": "switch_file", "args": {"extensions": ["cpp", "cxx", "cc", "c", "hpp", "hxx", "hh", "h", "ipp", "inl", "m", "mm"]} },
|
||||
{ "keys": ["super+n"], "command": "new_file" },
|
||||
{ "keys": ["super+s"], "command": "save" },
|
||||
{ "keys": ["super+shift+s"], "command": "prompt_save_as" },
|
||||
{ "keys": ["super+alt+s"], "command": "save_all" },
|
||||
{ "keys": ["super+w"], "command": "close" },
|
||||
|
||||
{ "keys": ["super+k", "super+b"], "command": "toggle_side_bar" },
|
||||
{ "keys": ["super+ctrl+f"], "command": "toggle_full_screen" },
|
||||
{ "keys": ["super+ctrl+shift+f"], "command": "toggle_distraction_free" },
|
||||
|
||||
{ "keys": ["super+z"], "command": "undo" },
|
||||
{ "keys": ["super+shift+z"], "command": "redo" },
|
||||
{ "keys": ["super+y"], "command": "redo_or_repeat" },
|
||||
{ "keys": ["super+u"], "command": "soft_undo" },
|
||||
{ "keys": ["super+shift+u"], "command": "soft_redo" },
|
||||
|
||||
{ "keys": ["super+x"], "command": "cut" },
|
||||
{ "keys": ["super+c"], "command": "copy" },
|
||||
{ "keys": ["super+v"], "command": "paste" },
|
||||
{ "keys": ["super+shift+v"], "command": "paste_and_indent" },
|
||||
{ "keys": ["super+k", "super+v"], "command": "paste_from_history" },
|
||||
{ "keys": ["super+option+v"], "command": "paste_from_history" },
|
||||
|
||||
{ "keys": ["ctrl+alt+left"], "command": "move", "args": {"by": "subwords", "forward": false} },
|
||||
{ "keys": ["ctrl+alt+right"], "command": "move", "args": {"by": "subword_ends", "forward": true} },
|
||||
{ "keys": ["ctrl+alt+shift+left"], "command": "move", "args": {"by": "subwords", "forward": false, "extend": true} },
|
||||
{ "keys": ["ctrl+alt+shift+right"], "command": "move", "args": {"by": "subword_ends", "forward": true, "extend": true} },
|
||||
|
||||
{ "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+alt+up"], "command": "scroll_lines", "args": {"amount": 1.0} },
|
||||
{ "keys": ["ctrl+alt+down"], "command": "scroll_lines", "args": {"amount": -1.0} },
|
||||
|
||||
{ "keys": ["ctrl+shift+up"], "command": "select_lines", "args": {"forward": false} },
|
||||
{ "keys": ["ctrl+shift+down"], "command": "select_lines", "args": {"forward": true} },
|
||||
|
||||
{ "keys": ["super+shift+["], "command": "prev_view" },
|
||||
{ "keys": ["super+shift+]"], "command": "next_view" },
|
||||
{ "keys": ["super+alt+left"], "command": "prev_view" },
|
||||
{ "keys": ["super+alt+right"], "command": "next_view" },
|
||||
|
||||
{ "keys": ["ctrl+tab"], "command": "next_view_in_stack" },
|
||||
{ "keys": ["ctrl+shift+tab"], "command": "prev_view_in_stack" },
|
||||
|
||||
{ "keys": ["super+a"], "command": "select_all" },
|
||||
{ "keys": ["super+shift+l"], "command": "split_selection_into_lines" },
|
||||
{ "keys": ["escape"], "command": "single_selection", "context":
|
||||
[
|
||||
{ "key": "num_selections", "operator": "not_equal", "operand": 1 }
|
||||
]
|
||||
},
|
||||
{ "keys": ["escape"], "command": "clear_fields", "context":
|
||||
[
|
||||
{ "key": "has_next_field", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["escape"], "command": "clear_fields", "context":
|
||||
[
|
||||
{ "key": "has_prev_field", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["escape"], "command": "hide_panel", "args": {"cancel": true},
|
||||
"context":
|
||||
[
|
||||
{ "key": "panel_visible", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["escape"], "command": "hide_overlay", "context":
|
||||
[
|
||||
{ "key": "overlay_visible", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["escape"], "command": "hide_popup", "context":
|
||||
[
|
||||
{ "key": "popup_visible", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["escape"], "command": "hide_auto_complete", "context":
|
||||
[
|
||||
{ "key": "auto_complete_visible", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["super+]"], "command": "indent" },
|
||||
{ "keys": ["super+["], "command": "unindent" },
|
||||
|
||||
{ "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "\t", "exact": true} },
|
||||
{ "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "\t", "exact": false},
|
||||
"context":
|
||||
[
|
||||
{ "key": "setting.tab_completion", "operator": "equal", "operand": true },
|
||||
{ "key": "preceding_text", "operator": "not_regex_match", "operand": ".*\\b[0-9]+$", "match_all": true },
|
||||
]
|
||||
},
|
||||
{ "keys": ["tab"], "command": "replace_completion_with_next_completion", "context":
|
||||
[
|
||||
{ "key": "last_command", "operator": "equal", "operand": "insert_best_completion" },
|
||||
{ "key": "setting.tab_completion", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["tab"], "command": "reindent", "context":
|
||||
[
|
||||
{ "key": "setting.auto_indent", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_match", "operand": "^$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_match", "operand": "^$", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["tab"], "command": "indent", "context":
|
||||
[
|
||||
{ "key": "text", "operator": "regex_contains", "operand": "\n" }
|
||||
]
|
||||
},
|
||||
{ "keys": ["tab"], "command": "next_field", "context":
|
||||
[
|
||||
{ "key": "has_next_field", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["tab"], "command": "commit_completion", "context":
|
||||
[
|
||||
{ "key": "auto_complete_visible" },
|
||||
{ "key": "setting.auto_complete_commit_on_tab" }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["shift+tab"], "command": "insert", "args": {"characters": "\t"} },
|
||||
{ "keys": ["shift+tab"], "command": "unindent", "context":
|
||||
[
|
||||
{ "key": "setting.shift_tab_unindent", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["shift+tab"], "command": "unindent", "context":
|
||||
[
|
||||
{ "key": "preceding_text", "operator": "regex_match", "operand": "^[\t ]*" }
|
||||
]
|
||||
},
|
||||
{ "keys": ["shift+tab"], "command": "unindent", "context":
|
||||
[
|
||||
{ "key": "text", "operator": "regex_contains", "operand": "\n" }
|
||||
]
|
||||
},
|
||||
{ "keys": ["shift+tab"], "command": "prev_field", "context":
|
||||
[
|
||||
{ "key": "has_prev_field", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["super+l"], "command": "expand_selection", "args": {"to": "line"} },
|
||||
{ "keys": ["super+d"], "command": "find_under_expand" },
|
||||
{ "keys": ["super+k", "super+d"], "command": "find_under_expand_skip" },
|
||||
{ "keys": ["super+shift+space"], "command": "expand_selection", "args": {"to": "scope"} },
|
||||
{ "keys": ["ctrl+shift+m"], "command": "expand_selection", "args": {"to": "brackets"} },
|
||||
{ "keys": ["ctrl+m"], "command": "move_to", "args": {"to": "brackets"} },
|
||||
{ "keys": ["super+shift+j"], "command": "expand_selection", "args": {"to": "indentation"} },
|
||||
{ "keys": ["super+shift+a"], "command": "expand_selection", "args": {"to": "tag"} },
|
||||
|
||||
{ "keys": ["super+alt+."], "command": "close_tag" },
|
||||
|
||||
{ "keys": ["ctrl+q"], "command": "toggle_record_macro" },
|
||||
{ "keys": ["ctrl+shift+q"], "command": "run_macro" },
|
||||
|
||||
{ "keys": ["super+enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line.sublime-macro"} },
|
||||
{ "keys": ["super+shift+enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line Before.sublime-macro"} },
|
||||
{ "keys": ["enter"], "command": "commit_completion", "context":
|
||||
[
|
||||
{ "key": "auto_complete_visible" },
|
||||
{ "key": "setting.auto_complete_commit_on_tab", "operand": false }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["super+t"], "command": "show_overlay", "args": {"overlay": "goto", "show_files": true} },
|
||||
{ "keys": ["super+p"], "command": "show_overlay", "args": {"overlay": "goto", "show_files": true} },
|
||||
{ "keys": ["super+shift+p"], "command": "show_overlay", "args": {"overlay": "command_palette"} },
|
||||
{ "keys": ["super+ctrl+p"], "command": "prompt_select_workspace" },
|
||||
{ "keys": ["super+r"], "command": "show_overlay", "args": {"overlay": "goto", "text": "@"} },
|
||||
{ "keys": ["ctrl+g"], "command": "show_overlay", "args": {"overlay": "goto", "text": ":"} },
|
||||
{ "keys": ["f12"], "command": "goto_definition" },
|
||||
{ "keys": ["super+alt+down"], "command": "goto_definition" },
|
||||
{ "keys": ["super+shift+r"], "command": "goto_symbol_in_project" },
|
||||
{ "keys": ["ctrl+minus"], "command": "jump_back" },
|
||||
{ "keys": ["ctrl+shift+minus"], "command": "jump_forward" },
|
||||
|
||||
{ "keys": ["super+i"], "command": "show_panel", "args": {"panel": "incremental_find", "reverse": false} },
|
||||
{ "keys": ["super+shift+i"], "command": "show_panel", "args": {"panel": "incremental_find", "reverse": true} },
|
||||
{ "keys": ["super+f"], "command": "show_panel", "args": {"panel": "find", "reverse": false} },
|
||||
{ "keys": ["super+alt+f"], "command": "show_panel", "args": {"panel": "replace", "reverse": false} },
|
||||
{ "keys": ["super+alt+e"], "command": "replace_next" },
|
||||
{ "keys": ["super+g"], "command": "find_next" },
|
||||
{ "keys": ["super+shift+g"], "command": "find_prev" },
|
||||
{ "keys": ["super+e"], "command": "slurp_find_string" },
|
||||
{ "keys": ["super+shift+e"], "command": "slurp_replace_string" },
|
||||
|
||||
{ "keys": ["alt+super+g"], "command": "find_under" },
|
||||
{ "keys": ["shift+alt+super+g"], "command": "find_under_prev" },
|
||||
{ "keys": ["ctrl+super+g"], "command": "find_all_under" },
|
||||
|
||||
{ "keys": ["super+shift+f"], "command": "show_panel", "args": {"panel": "find_in_files"} },
|
||||
{ "keys": ["f4"], "command": "next_result" },
|
||||
{ "keys": ["shift+f4"], "command": "prev_result" },
|
||||
|
||||
{ "keys": ["f6"], "command": "toggle_setting", "args": {"setting": "spell_check"} },
|
||||
{ "keys": ["ctrl+f6"], "command": "next_misspelling" },
|
||||
{ "keys": ["ctrl+shift+f6"], "command": "prev_misspelling" },
|
||||
|
||||
{ "keys": ["ctrl+super+up"], "command": "swap_line_up" },
|
||||
{ "keys": ["ctrl+super+down"], "command": "swap_line_down" },
|
||||
|
||||
{ "keys": ["ctrl+backspace"], "command": "delete_word", "args": { "forward": false, "sub_words": true } },
|
||||
{ "keys": ["ctrl+delete"], "command": "delete_word", "args": { "forward": true, "sub_words": true } },
|
||||
|
||||
{ "keys": ["super+forward_slash"], "command": "toggle_comment", "args": { "block": false } },
|
||||
{ "keys": ["super+alt+forward_slash"], "command": "toggle_comment", "args": { "block": true } },
|
||||
|
||||
{ "keys": ["super+j"], "command": "join_lines" },
|
||||
{ "keys": ["super+shift+d"], "command": "duplicate_line" },
|
||||
|
||||
{ "keys": ["ctrl+backquote"], "command": "show_panel", "args": {"panel": "console", "toggle": true} },
|
||||
|
||||
{ "keys": ["ctrl+space"], "command": "auto_complete" },
|
||||
{ "keys": ["ctrl+space"], "command": "replace_completion_with_auto_complete", "context":
|
||||
[
|
||||
{ "key": "last_command", "operator": "equal", "operand": "insert_best_completion" },
|
||||
{ "key": "auto_complete_visible", "operator": "equal", "operand": false },
|
||||
{ "key": "setting.tab_completion", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["super+alt+p"], "command": "show_scope_name" },
|
||||
{ "keys": ["ctrl+shift+p"], "command": "show_scope_name" },
|
||||
|
||||
{ "keys": ["f7"], "command": "build" },
|
||||
{ "keys": ["super+b"], "command": "build" },
|
||||
{ "keys": ["super+shift+b"], "command": "build", "args": {"select": true} },
|
||||
|
||||
{ "keys": ["ctrl+c"], "command": "cancel_build" },
|
||||
|
||||
{ "keys": ["ctrl+t"], "command": "transpose" },
|
||||
|
||||
{ "keys": ["f5"], "command": "sort_lines", "args": {"case_sensitive": false} },
|
||||
{ "keys": ["ctrl+f5"], "command": "sort_lines", "args": {"case_sensitive": true} },
|
||||
|
||||
// Auto-pair quotes
|
||||
{ "keys": ["\""], "command": "insert_snippet", "args": {"contents": "\"$0\""}, "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": "^(?:\t| |\\)|]|\\}|>|$)", "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "not_regex_contains", "operand": "[\"a-zA-Z0-9_]$", "match_all": true },
|
||||
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.double - punctuation.definition.string.end", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["\""], "command": "insert_snippet", "args": {"contents": "\"${0:$SELECTION}\""}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": false, "match_all": 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 },
|
||||
{ "key": "selector", "operator": "not_equal", "operand": "punctuation.definition.string.begin", "match_all": true },
|
||||
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.double - punctuation.definition.string.end", "match_all": true },
|
||||
]
|
||||
},
|
||||
{ "keys": ["backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Left Right.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\"$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^\"", "match_all": true },
|
||||
{ "key": "selector", "operator": "not_equal", "operand": "punctuation.definition.string.begin", "match_all": true },
|
||||
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.double - punctuation.definition.string.end", "match_all": true },
|
||||
]
|
||||
},
|
||||
|
||||
// Auto-pair single quotes
|
||||
{ "keys": ["'"], "command": "insert_snippet", "args": {"contents": "'$0'"}, "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": "^(?:\t| |\\)|]|\\}|>|$)", "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "not_regex_contains", "operand": "['a-zA-Z0-9_]$", "match_all": true },
|
||||
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.single - punctuation.definition.string.end", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["'"], "command": "insert_snippet", "args": {"contents": "'${0:$SELECTION}'"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": false, "match_all": 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 },
|
||||
{ "key": "selector", "operator": "not_equal", "operand": "punctuation.definition.string.begin", "match_all": true },
|
||||
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.single - punctuation.definition.string.end", "match_all": true },
|
||||
]
|
||||
},
|
||||
{ "keys": ["backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Left Right.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "'$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^'", "match_all": true },
|
||||
{ "key": "selector", "operator": "not_equal", "operand": "punctuation.definition.string.begin", "match_all": true },
|
||||
{ "key": "eol_selector", "operator": "not_equal", "operand": "string.quoted.single - punctuation.definition.string.end", "match_all": true },
|
||||
]
|
||||
},
|
||||
|
||||
// Auto-pair brackets
|
||||
{ "keys": ["("], "command": "insert_snippet", "args": {"contents": "($0)"}, "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": "^(?:\t| |\\)|]|;|\\}|$)", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["("], "command": "insert_snippet", "args": {"contents": "(${0:$SELECTION})"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": false, "match_all": 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": ["backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Left Right.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\\($", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^\\)", "match_all": true }
|
||||
]
|
||||
},
|
||||
|
||||
// Auto-pair square brackets
|
||||
{ "keys": ["["], "command": "insert_snippet", "args": {"contents": "[$0]"}, "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": "^(?:\t| |\\)|]|;|\\}|$)", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["["], "command": "insert_snippet", "args": {"contents": "[${0:$SELECTION}]"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": false, "match_all": 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": ["backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Left Right.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\\[$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^\\]", "match_all": true }
|
||||
]
|
||||
},
|
||||
|
||||
// Auto-pair curly brackets
|
||||
{ "keys": ["{"], "command": "insert_snippet", "args": {"contents": "{$0}"}, "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": "^(?:\t| |\\)|]|\\}|$)", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["{"], "command": "wrap_block", "args": {"begin": "{", "end": "}"}, "context":
|
||||
[
|
||||
{ "key": "indented_block", "match_all": true },
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_match", "operand": "^$", "match_all": true },
|
||||
]
|
||||
},
|
||||
{ "keys": ["{"], "command": "insert_snippet", "args": {"contents": "{${0:$SELECTION}}"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": false, "match_all": 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": ["backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Left Right.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\\{$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^\\}", "match_all": true }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line in Braces.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_indent", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\\{$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^\\}", "match_all": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["shift+enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line in Braces.sublime-macro"}, "context":
|
||||
[
|
||||
{ "key": "setting.auto_indent", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": "\\{$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^\\}", "match_all": true }
|
||||
]
|
||||
},
|
||||
|
||||
{ "keys": ["enter"], "command": "auto_indent_tag", "context":
|
||||
[
|
||||
{ "key": "setting.auto_indent", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "selector", "operator": "equal", "operand": "punctuation.definition.tag.begin", "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": ">$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^</", "match_all": true },
|
||||
]
|
||||
},
|
||||
{ "keys": ["shift+enter"], "command": "auto_indent_tag", "context":
|
||||
[
|
||||
{ "key": "setting.auto_indent", "operator": "equal", "operand": true },
|
||||
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
|
||||
{ "key": "selector", "operator": "equal", "operand": "punctuation.definition.tag.begin", "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_contains", "operand": ">$", "match_all": true },
|
||||
{ "key": "following_text", "operator": "regex_contains", "operand": "^</", "match_all": true },
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"keys": ["super+alt+1"],
|
||||
"command": "set_layout",
|
||||
"args":
|
||||
{
|
||||
"cols": [0.0, 1.0],
|
||||
"rows": [0.0, 1.0],
|
||||
"cells": [[0, 0, 1, 1]]
|
||||
}
|
||||
},
|
||||
{
|
||||
"keys": ["super+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": ["super+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": ["super+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": ["super+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": ["super+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+1"], "command": "focus_group", "args": { "group": 0 } },
|
||||
{ "keys": ["ctrl+2"], "command": "focus_group", "args": { "group": 1 } },
|
||||
{ "keys": ["ctrl+3"], "command": "focus_group", "args": { "group": 2 } },
|
||||
{ "keys": ["ctrl+4"], "command": "focus_group", "args": { "group": 3 } },
|
||||
{ "keys": ["ctrl+5"], "command": "focus_group", "args": { "group": 4 } },
|
||||
{ "keys": ["ctrl+6"], "command": "focus_group", "args": { "group": 5 } },
|
||||
{ "keys": ["ctrl+7"], "command": "focus_group", "args": { "group": 6 } },
|
||||
{ "keys": ["ctrl+8"], "command": "focus_group", "args": { "group": 7 } },
|
||||
{ "keys": ["ctrl+9"], "command": "focus_group", "args": { "group": 8 } },
|
||||
{ "keys": ["ctrl+shift+1"], "command": "move_to_group", "args": { "group": 0 } },
|
||||
{ "keys": ["ctrl+shift+2"], "command": "move_to_group", "args": { "group": 1 } },
|
||||
{ "keys": ["ctrl+shift+3"], "command": "move_to_group", "args": { "group": 2 } },
|
||||
{ "keys": ["ctrl+shift+4"], "command": "move_to_group", "args": { "group": 3 } },
|
||||
{ "keys": ["ctrl+shift+5"], "command": "move_to_group", "args": { "group": 4 } },
|
||||
{ "keys": ["ctrl+shift+6"], "command": "move_to_group", "args": { "group": 5 } },
|
||||
{ "keys": ["ctrl+shift+7"], "command": "move_to_group", "args": { "group": 6 } },
|
||||
{ "keys": ["ctrl+shift+8"], "command": "move_to_group", "args": { "group": 7 } },
|
||||
{ "keys": ["ctrl+shift+9"], "command": "move_to_group", "args": { "group": 8 } },
|
||||
{ "keys": ["ctrl+0"], "command": "focus_side_bar" },
|
||||
|
||||
{ "keys": ["super+k", "super+up"], "command": "new_pane" },
|
||||
{ "keys": ["super+k", "super+shift+up"], "command": "new_pane", "args": {"move": false} },
|
||||
{ "keys": ["super+k", "super+down"], "command": "close_pane" },
|
||||
{ "keys": ["super+k", "super+left"], "command": "focus_neighboring_group", "args": {"forward": false} },
|
||||
{ "keys": ["super+k", "super+right"], "command": "focus_neighboring_group" },
|
||||
{ "keys": ["super+k", "super+shift+left"], "command": "move_to_neighboring_group", "args": {"forward": false} },
|
||||
{ "keys": ["super+k", "super+shift+right"], "command": "move_to_neighboring_group" },
|
||||
|
||||
{ "keys": ["super+1"], "command": "select_by_index", "args": { "index": 0 } },
|
||||
{ "keys": ["super+2"], "command": "select_by_index", "args": { "index": 1 } },
|
||||
{ "keys": ["super+3"], "command": "select_by_index", "args": { "index": 2 } },
|
||||
{ "keys": ["super+4"], "command": "select_by_index", "args": { "index": 3 } },
|
||||
{ "keys": ["super+5"], "command": "select_by_index", "args": { "index": 4 } },
|
||||
{ "keys": ["super+6"], "command": "select_by_index", "args": { "index": 5 } },
|
||||
{ "keys": ["super+7"], "command": "select_by_index", "args": { "index": 6 } },
|
||||
{ "keys": ["super+8"], "command": "select_by_index", "args": { "index": 7 } },
|
||||
{ "keys": ["super+9"], "command": "select_by_index", "args": { "index": 8 } },
|
||||
{ "keys": ["super+0"], "command": "select_by_index", "args": { "index": 9 } },
|
||||
|
||||
{ "keys": ["f2"], "command": "next_bookmark" },
|
||||
{ "keys": ["shift+f2"], "command": "prev_bookmark" },
|
||||
{ "keys": ["super+f2"], "command": "toggle_bookmark" },
|
||||
{ "keys": ["super+shift+f2"], "command": "clear_bookmarks" },
|
||||
{ "keys": ["alt+f2"], "command": "select_all_bookmarks" },
|
||||
|
||||
{ "keys": ["super+k", "super+u"], "command": "upper_case" },
|
||||
{ "keys": ["super+k", "super+l"], "command": "lower_case" },
|
||||
{ "keys": ["super+k", "super+space"], "command": "set_mark" },
|
||||
{ "keys": ["super+k", "super+a"], "command": "select_to_mark" },
|
||||
{ "keys": ["super+k", "super+w"], "command": "delete_to_mark" },
|
||||
{ "keys": ["super+k", "super+x"], "command": "swap_with_mark" },
|
||||
{ "keys": ["super+k", "super+g"], "command": "clear_bookmarks", "args": {"name": "mark"} },
|
||||
|
||||
{ "keys": ["super+equals"], "command": "increase_font_size" },
|
||||
{ "keys": ["super+plus"], "command": "increase_font_size" },
|
||||
{ "keys": ["super+minus"], "command": "decrease_font_size" },
|
||||
|
||||
{ "keys": ["ctrl+shift+w"], "command": "insert_snippet", "args": { "name": "Packages/XML/Snippets/long-tag.sublime-snippet" } },
|
||||
|
||||
{ "keys": ["ctrl+shift+k"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Line.sublime-macro"} },
|
||||
|
||||
{ "keys": ["super+alt+q"], "command": "wrap_lines" },
|
||||
|
||||
{ "keys": ["super+alt+["], "command": "fold" },
|
||||
{ "keys": ["super+alt+]"], "command": "unfold" },
|
||||
{ "keys": ["super+k", "super+1"], "command": "fold_by_level", "args": {"level": 1} },
|
||||
{ "keys": ["super+k", "super+2"], "command": "fold_by_level", "args": {"level": 2} },
|
||||
{ "keys": ["super+k", "super+3"], "command": "fold_by_level", "args": {"level": 3} },
|
||||
{ "keys": ["super+k", "super+4"], "command": "fold_by_level", "args": {"level": 4} },
|
||||
{ "keys": ["super+k", "super+5"], "command": "fold_by_level", "args": {"level": 5} },
|
||||
{ "keys": ["super+k", "super+6"], "command": "fold_by_level", "args": {"level": 6} },
|
||||
{ "keys": ["super+k", "super+7"], "command": "fold_by_level", "args": {"level": 7} },
|
||||
{ "keys": ["super+k", "super+8"], "command": "fold_by_level", "args": {"level": 8} },
|
||||
{ "keys": ["super+k", "super+9"], "command": "fold_by_level", "args": {"level": 9} },
|
||||
{ "keys": ["super+k", "super+0"], "command": "unfold_all" },
|
||||
{ "keys": ["super+k", "super+j"], "command": "unfold_all" },
|
||||
{ "keys": ["super+k", "super+t"], "command": "fold_tag_attributes" },
|
||||
|
||||
{ "keys": ["super+alt+o"], "command": "toggle_overwrite" },
|
||||
|
||||
{ "keys": ["alt+f2"], "command": "context_menu" },
|
||||
|
||||
{ "keys": ["super+alt+c"], "command": "toggle_case_sensitive", "context":
|
||||
[
|
||||
{ "key": "setting.is_widget", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["super+alt+r"], "command": "toggle_regex", "context":
|
||||
[
|
||||
{ "key": "setting.is_widget", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["super+alt+w"], "command": "toggle_whole_word", "context":
|
||||
[
|
||||
{ "key": "setting.is_widget", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
{ "keys": ["super+alt+a"], "command": "toggle_preserve_case", "context":
|
||||
[
|
||||
{ "key": "setting.is_widget", "operator": "equal", "operand": true }
|
||||
]
|
||||
},
|
||||
|
||||
// Find panel key bindings
|
||||
{ "keys": ["enter"], "command": "find_next", "context":
|
||||
[{"key": "panel", "operand": "find"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["shift+enter"], "command": "find_prev", "context":
|
||||
[{"key": "panel", "operand": "find"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["alt+enter"], "command": "find_all", "args": {"close_panel": true},
|
||||
"context": [{"key": "panel", "operand": "find"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
|
||||
// Replace panel key bindings
|
||||
{ "keys": ["enter"], "command": "find_next", "context":
|
||||
[{"key": "panel", "operand": "replace"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["shift+enter"], "command": "find_prev", "context":
|
||||
[{"key": "panel", "operand": "replace"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["alt+enter"], "command": "find_all", "args": {"close_panel": true},
|
||||
"context": [{"key": "panel", "operand": "replace"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["ctrl+alt+enter"], "command": "replace_all", "args": {"close_panel": true},
|
||||
"context": [{"key": "panel", "operand": "replace"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
|
||||
// Incremental find panel key bindings
|
||||
{ "keys": ["enter"], "command": "hide_panel", "context":
|
||||
[{"key": "panel", "operand": "incremental_find"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["shift+enter"], "command": "find_prev", "context":
|
||||
[{"key": "panel", "operand": "incremental_find"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
{ "keys": ["alt+enter"], "command": "find_all", "args": {"close_panel": true},
|
||||
"context": [{"key": "panel", "operand": "incremental_find"}, {"key": "panel_has_focus"}]
|
||||
},
|
||||
|
||||
{ "keys": ["super+,"], "command": "edit_settings", "args":
|
||||
{
|
||||
"base_file": "${packages}/Default/Preferences.sublime-settings",
|
||||
"default": "// Settings in here override those in \"Default/Preferences.sublime-settings\",\n// and are overridden in turn by syntax-specific settings.\n{\n\t$0\n}\n"
|
||||
}
|
||||
},
|
||||
|
||||
{ "keys": ["super+k", "super+y"], "command": "yank" },
|
||||
{ "keys": ["super+k", "super+k"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete to Hard EOL.sublime-macro"} },
|
||||
{ "keys": ["super+k", "super+backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete to Hard BOL.sublime-macro"} },
|
||||
{ "keys": ["super+k", "super+c"], "command": "show_at_center" },
|
||||
|
||||
// These are OS X built in commands, and don't need to be listed here, but
|
||||
// doing so lets them show up in the menu
|
||||
{ "keys": ["ctrl+y"], "command": "yank" },
|
||||
{ "keys": ["super+backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete to Hard BOL.sublime-macro"} },
|
||||
// super+delete isn't a built in command, but makes sense anyway
|
||||
{ "keys": ["super+delete"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete to Hard EOL.sublime-macro"} },
|
||||
{ "keys": ["ctrl+k"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete to Hard EOL.sublime-macro"} },
|
||||
{ "keys": ["ctrl+l"], "command": "show_at_center" },
|
||||
{ "keys": ["ctrl+o"], "command": "insert_snippet", "args": { "contents": "$0\n" } },
|
||||
{ "keys": ["ctrl+super+d"], "command": "noop" },
|
||||
{ "keys": ["ctrl+super+shift+d"], "command": "noop" },
|
||||
|
||||
// HTML, XML close tag
|
||||
{ "keys": ["/"], "command": "close_tag", "args": { "insert_slash": true }, "context":
|
||||
[
|
||||
{ "key": "selector", "operator": "equal", "operand": "(text.html, text.xml) - string - comment", "match_all": true },
|
||||
{ "key": "preceding_text", "operator": "regex_match", "operand": ".*<$", "match_all": true },
|
||||
{ "key": "setting.auto_close_tags" }
|
||||
]
|
||||
}
|
||||
]
|
||||
432
references/builtin-keyboard.json
Normal file
432
references/builtin-keyboard.json
Normal file
@@ -0,0 +1,432 @@
|
||||
{"scancode":"01",
|
||||
"eventcode":1,
|
||||
"eventname":"ESC"},
|
||||
{"scancode":"02",
|
||||
"eventcode":2,
|
||||
"eventname":"1"},
|
||||
{"scancode":"03",
|
||||
"eventcode":3,
|
||||
"eventname":"2"},
|
||||
{"scancode":"04",
|
||||
"eventcode":4,
|
||||
"eventname":"3"},
|
||||
{"scancode":"05",
|
||||
"eventcode":5,
|
||||
"eventname":"4"},
|
||||
{"scancode":"06",
|
||||
"eventcode":6,
|
||||
"eventname":"5"},
|
||||
{"scancode":"07",
|
||||
"eventcode":7,
|
||||
"eventname":"6"},
|
||||
{"scancode":"08",
|
||||
"eventcode":8,
|
||||
"eventname":"7"},
|
||||
{"scancode":"09",
|
||||
"eventcode":9,
|
||||
"eventname":"8"},
|
||||
{"scancode":"0a",
|
||||
"eventcode":10,
|
||||
"eventname":"9"},
|
||||
{"scancode":"0b",
|
||||
"eventcode":11,
|
||||
"eventname":"0"},
|
||||
{"scancode":"0c",
|
||||
"eventcode":12,
|
||||
"eventname":"MINUS"},
|
||||
{"scancode":"0d",
|
||||
"eventcode":13,
|
||||
"eventname":"EQUAL"},
|
||||
{"scancode":"0e",
|
||||
"eventcode":14,
|
||||
"eventname":"BACKSPACE"},
|
||||
{"scancode":"0f",
|
||||
"eventcode":15,
|
||||
"eventname":"TAB"},
|
||||
{"scancode":"10",
|
||||
"eventcode":16,
|
||||
"eventname":"Q"},
|
||||
{"scancode":"11",
|
||||
"eventcode":17,
|
||||
"eventname":"W"},
|
||||
{"scancode":"12",
|
||||
"eventcode":18,
|
||||
"eventname":"E"},
|
||||
{"scancode":"13",
|
||||
"eventcode":19,
|
||||
"eventname":"R"},
|
||||
{"scancode":"14",
|
||||
"eventcode":20,
|
||||
"eventname":"T"},
|
||||
{"scancode":"15",
|
||||
"eventcode":21,
|
||||
"eventname":"Y"},
|
||||
{"scancode":"16",
|
||||
"eventcode":22,
|
||||
"eventname":"U"},
|
||||
{"scancode":"17",
|
||||
"eventcode":23,
|
||||
"eventname":"I"},
|
||||
{"scancode":"18",
|
||||
"eventcode":24,
|
||||
"eventname":"O"},
|
||||
{"scancode":"19",
|
||||
"eventcode":25,
|
||||
"eventname":"P"},
|
||||
{"scancode":"1a",
|
||||
"eventcode":26,
|
||||
"eventname":"LEFTBRACE"},
|
||||
{"scancode":"1b",
|
||||
"eventcode":27,
|
||||
"eventname":"RIGHTBRACE"},
|
||||
{"scancode":"1c",
|
||||
"eventcode":28,
|
||||
"eventname":"ENTER"},
|
||||
{"scancode":"1d",
|
||||
"eventcode":29,
|
||||
"eventname":"LEFTCTRL"},
|
||||
{"scancode":"1e",
|
||||
"eventcode":30,
|
||||
"eventname":"A"},
|
||||
{"scancode":"1f",
|
||||
"eventcode":31,
|
||||
"eventname":"S"},
|
||||
{"scancode":"20",
|
||||
"eventcode":32,
|
||||
"eventname":"D"},
|
||||
{"scancode":"21",
|
||||
"eventcode":33,
|
||||
"eventname":"F"},
|
||||
{"scancode":"22",
|
||||
"eventcode":34,
|
||||
"eventname":"G"},
|
||||
{"scancode":"23",
|
||||
"eventcode":35,
|
||||
"eventname":"H"},
|
||||
{"scancode":"24",
|
||||
"eventcode":36,
|
||||
"eventname":"J"},
|
||||
{"scancode":"25",
|
||||
"eventcode":37,
|
||||
"eventname":"K"},
|
||||
{"scancode":"26",
|
||||
"eventcode":38,
|
||||
"eventname":"L"},
|
||||
{"scancode":"27",
|
||||
"eventcode":39,
|
||||
"eventname":"SEMICOLON"},
|
||||
{"scancode":"28",
|
||||
"eventcode":40,
|
||||
"eventname":"APOSTROPHE"},
|
||||
{"scancode":"29",
|
||||
"eventcode":41,
|
||||
"eventname":"GRAVE"},
|
||||
{"scancode":"2a",
|
||||
"eventcode":42,
|
||||
"eventname":"LEFTSHIFT"},
|
||||
{"scancode":"2b",
|
||||
"eventcode":43,
|
||||
"eventname":"BACKSLASH"},
|
||||
{"scancode":"2c",
|
||||
"eventcode":44,
|
||||
"eventname":"Z"},
|
||||
{"scancode":"2d",
|
||||
"eventcode":45,
|
||||
"eventname":"X"},
|
||||
{"scancode":"2e",
|
||||
"eventcode":46,
|
||||
"eventname":"C"},
|
||||
{"scancode":"2f",
|
||||
"eventcode":47,
|
||||
"eventname":"V"},
|
||||
{"scancode":"30",
|
||||
"eventcode":48,
|
||||
"eventname":"B"},
|
||||
{"scancode":"31",
|
||||
"eventcode":49,
|
||||
"eventname":"N"},
|
||||
{"scancode":"32",
|
||||
"eventcode":50,
|
||||
"eventname":"M"},
|
||||
{"scancode":"33",
|
||||
"eventcode":51,
|
||||
"eventname":"COMMA"},
|
||||
{"scancode":"34",
|
||||
"eventcode":52,
|
||||
"eventname":"DOT"},
|
||||
{"scancode":"35",
|
||||
"eventcode":53,
|
||||
"eventname":"SLASH"},
|
||||
{"scancode":"36",
|
||||
"eventcode":54,
|
||||
"eventname":"RIGHTSHIFT"},
|
||||
{"scancode":"37",
|
||||
"eventcode":55,
|
||||
"eventname":"KPASTERISK"},
|
||||
{"scancode":"38",
|
||||
"eventcode":56,
|
||||
"eventname":"LEFTALT"},
|
||||
{"scancode":"39",
|
||||
"eventcode":57,
|
||||
"eventname":"SPACE"},
|
||||
{"scancode":"40",
|
||||
"eventcode":58,
|
||||
"eventname":"CAPSLOCK"},
|
||||
{"scancode":"41",
|
||||
"eventcode":59,
|
||||
"eventname":"F1"},
|
||||
{"scancode":"42",
|
||||
"eventcode":60,
|
||||
"eventname":"F2"},
|
||||
{"scancode":"43",
|
||||
"eventcode":61,
|
||||
"eventname":"F3"},
|
||||
{"scancode":"44",
|
||||
"eventcode":62,
|
||||
"eventname":"F4"},
|
||||
{"scancode":"45",
|
||||
"eventcode":63,
|
||||
"eventname":"F5"},
|
||||
{"scancode":"46",
|
||||
"eventcode":64,
|
||||
"eventname":"F6"},
|
||||
{"scancode":"47",
|
||||
"eventcode":65,
|
||||
"eventname":"F7"},
|
||||
{"scancode":"48",
|
||||
"eventcode":66,
|
||||
"eventname":"F8"},
|
||||
{"scancode":"49",
|
||||
"eventcode":67,
|
||||
"eventname":"F9"},
|
||||
{"scancode":"50",
|
||||
"eventcode":68,
|
||||
"eventname":"F10"},
|
||||
{"scancode":"51",
|
||||
"eventcode":69,
|
||||
"eventname":"NUMLOCK"},
|
||||
{"scancode":"52",
|
||||
"eventcode":70,
|
||||
"eventname":"SCROLLLOCK"},
|
||||
{"scancode":"53",
|
||||
"eventcode":71,
|
||||
"eventname":"KP7"},
|
||||
{"scancode":"54",
|
||||
"eventcode":72,
|
||||
"eventname":"KP8"},
|
||||
{"scancode":"55",
|
||||
"eventcode":73,
|
||||
"eventname":"KP9"},
|
||||
{"scancode":"56",
|
||||
"eventcode":74,
|
||||
"eventname":"KPMINUS"},
|
||||
{"scancode":"57",
|
||||
"eventcode":75,
|
||||
"eventname":"KP4"},
|
||||
{"scancode":"58",
|
||||
"eventcode":76,
|
||||
"eventname":"KP5"},
|
||||
{"scancode":"59",
|
||||
"eventcode":77,
|
||||
"eventname":"KP6"},
|
||||
{"scancode":"5A",
|
||||
"eventcode":78,
|
||||
"eventname":"KPPLUS"},
|
||||
{"scancode":"5B",
|
||||
"eventcode":79,
|
||||
"eventname":"KP1"},
|
||||
{"scancode":"5C",
|
||||
"eventcode":80,
|
||||
"eventname":"KP2"},
|
||||
{"scancode":"5D",
|
||||
"eventcode":81,
|
||||
"eventname":"KP3"},
|
||||
{"scancode":"5E",
|
||||
"eventcode":82,
|
||||
"eventname":"KP0"},
|
||||
{"scancode":"5F",
|
||||
"eventcode":83,
|
||||
"eventname":"KPDOT"},
|
||||
{"scancode":"60",
|
||||
"eventcode":85,
|
||||
"eventname":"ZENKAKUHANKAKU"},
|
||||
{"scancode":"61",
|
||||
"eventcode":86,
|
||||
"eventname":"102ND"},
|
||||
{"scancode":"62",
|
||||
"eventcode":87,
|
||||
"eventname":"F11"},
|
||||
{"scancode":"63",
|
||||
"eventcode":88,
|
||||
"eventname":"F12"},
|
||||
{"scancode":"64",
|
||||
"eventcode":89,
|
||||
"eventname":"RO"},
|
||||
{"scancode":"65",
|
||||
"eventcode":90,
|
||||
"eventname":"KATAKANA"},
|
||||
{"scancode":"66",
|
||||
"eventcode":91,
|
||||
"eventname":"HIRAGANA"},
|
||||
{"scancode":"67",
|
||||
"eventcode":92,
|
||||
"eventname":"HENKAN"},
|
||||
{"scancode":"68",
|
||||
"eventcode":93,
|
||||
"eventname":"KATAKANAHIRAGANA"},
|
||||
{"scancode":"69",
|
||||
"eventcode":94,
|
||||
"eventname":"MUHENKAN"},
|
||||
{"scancode":"6A",
|
||||
"eventcode":95,
|
||||
"eventname":"KPJPCOMMA"},
|
||||
{"scancode":"6B",
|
||||
"eventcode":96,
|
||||
"eventname":"KPENTER"},
|
||||
{"scancode":"6C",
|
||||
"eventcode":97,
|
||||
"eventname":"RIGHTCTRL"},
|
||||
{"scancode":"6D",
|
||||
"eventcode":98,
|
||||
"eventname":"KPSLASH"},
|
||||
{"scancode":"6E",
|
||||
"eventcode":99,
|
||||
"eventname":"SYSRQ"},
|
||||
{"scancode":"6F",
|
||||
"eventcode":100,
|
||||
"eventname":"RIGHTALT"},
|
||||
{"scancode":"70",
|
||||
"eventcode":102,
|
||||
"eventname":"HOME"},
|
||||
{"scancode":"71",
|
||||
"eventcode":103,
|
||||
"eventname":"UP"},
|
||||
{"scancode":"72",
|
||||
"eventcode":104,
|
||||
"eventname":"PAGEUP"},
|
||||
{"scancode":"73",
|
||||
"eventcode":105,
|
||||
"eventname":"LEFT"},
|
||||
{"scancode":"74",
|
||||
"eventcode":106,
|
||||
"eventname":"RIGHT"},
|
||||
{"scancode":"75",
|
||||
"eventcode":107,
|
||||
"eventname":"END"},
|
||||
{"scancode":"76",
|
||||
"eventcode":108,
|
||||
"eventname":"DOWN"},
|
||||
{"scancode":"77",
|
||||
"eventcode":109,
|
||||
"eventname":"PAGEDOWN"},
|
||||
{"scancode":"78",
|
||||
"eventcode":110,
|
||||
"eventname":"INSERT"},
|
||||
{"scancode":"79",
|
||||
"eventcode":111,
|
||||
"eventname":"DELETE"},
|
||||
{"scancode":"7A",
|
||||
"eventcode":112,
|
||||
"eventname":"MACRO"},
|
||||
{"scancode":"7B",
|
||||
"eventcode":113,
|
||||
"eventname":"MUTE"},
|
||||
{"scancode":"7C",
|
||||
"eventcode":114,
|
||||
"eventname":"VOLUMEDOWN"},
|
||||
{"scancode":"7D",
|
||||
"eventcode":115,
|
||||
"eventname":"VOLUMEUP"},
|
||||
{"scancode":"7E",
|
||||
"eventcode":116,
|
||||
"eventname":"POWER"},
|
||||
{"scancode":"7F",
|
||||
"eventcode":117,
|
||||
"eventname":"KPEQUAL"},
|
||||
{"scancode":"80",
|
||||
"eventcode":118,
|
||||
"eventname":"KPPLUSMINUS"},
|
||||
{"scancode":"81",
|
||||
"eventcode":119,
|
||||
"eventname":"PAUSE"},
|
||||
{"scancode":"82",
|
||||
"eventcode":121,
|
||||
"eventname":"KPCOMMA"},
|
||||
{"scancode":"83",
|
||||
"eventcode":122,
|
||||
"eventname":"HANGUEL"},
|
||||
{"scancode":"84",
|
||||
"eventcode":123,
|
||||
"eventname":"HANJA"},
|
||||
{"scancode":"85",
|
||||
"eventcode":124,
|
||||
"eventname":"YEN"},
|
||||
{"scancode":"86",
|
||||
"eventcode":125,
|
||||
"eventname":"LEFTMETA"},
|
||||
{"scancode":"87",
|
||||
"eventcode":126,
|
||||
"eventname":"RIGHTMETA"},
|
||||
{"scancode":"88",
|
||||
"eventcode":127,
|
||||
"eventname":"COMPOSE"},
|
||||
{"scancode":"89",
|
||||
"eventcode":128,
|
||||
"eventname":"STOP"},
|
||||
{"scancode":"8A",
|
||||
"eventcode":140,
|
||||
"eventname":"CALC"},
|
||||
{"scancode":"8B",
|
||||
"eventcode":142,
|
||||
"eventname":"SLEEP"},
|
||||
{"scancode":"8C",
|
||||
"eventcode":143,
|
||||
"eventname":"WAKEUP"},
|
||||
{"scancode":"8D",
|
||||
"eventcode":155,
|
||||
"eventname":"MAIL"},
|
||||
{"scancode":"8E",
|
||||
"eventcode":156,
|
||||
"eventname":"BOOKMARKS"},
|
||||
{"scancode":"8F",
|
||||
"eventcode":157,
|
||||
"eventname":"COMPUTER"},
|
||||
{"scancode":"90",
|
||||
"eventcode":158,
|
||||
"eventname":"BACK"},
|
||||
{"scancode":"91",
|
||||
"eventcode":159,
|
||||
"eventname":"FORWARD"},
|
||||
{"scancode":"92",
|
||||
"eventcode":163,
|
||||
"eventname":"NEXTSONG"},
|
||||
{"scancode":"93",
|
||||
"eventcode":164,
|
||||
"eventname":"PLAYPAUSE"},
|
||||
{"scancode":"94",
|
||||
"eventcode":165,
|
||||
"eventname":"PREVIOUSSONG"},
|
||||
{"scancode":"95",
|
||||
"eventcode":166,
|
||||
"eventname":"STOPCD"},
|
||||
{"scancode":"96",
|
||||
"eventcode":172,
|
||||
"eventname":"HOMEPAGE"},
|
||||
{"scancode":"97",
|
||||
"eventcode":173,
|
||||
"eventname":"REFRESH"},
|
||||
{"scancode":"98",
|
||||
"eventcode":183,
|
||||
"eventname":"F13"},
|
||||
{"scancode":"99",
|
||||
"eventcode":184,
|
||||
"eventname":"F14"},
|
||||
{"scancode":"9A",
|
||||
"eventcode":185,
|
||||
"eventname":"F15"},
|
||||
{"scancode":"9B",
|
||||
"eventcode":217,
|
||||
"eventname":"SEARCH"},
|
||||
{"scancode":"9C",
|
||||
"eventcode":226,
|
||||
"eventname":"MEDIA"}
|
||||
115
references/kintopy/kinto.py
Normal file
115
references/kintopy/kinto.py
Normal file
@@ -0,0 +1,115 @@
|
||||
#!/usr/bin/env python
|
||||
#
|
||||
# Kinto - Python implementation of Xlib
|
||||
#
|
||||
# Based on code by Stephan Sokolow
|
||||
# Source: https://gist.github.com/ssokolow/e7c9aae63fb7973e4d64cff969a78ae8
|
||||
from contextlib import contextmanager
|
||||
import Xlib
|
||||
import Xlib.display
|
||||
|
||||
# Connect to the X server and get the root window
|
||||
disp = Xlib.display.Display()
|
||||
root = disp.screen().root
|
||||
|
||||
# Prepare the property names we use so they can be fed into X11 APIs
|
||||
NET_ACTIVE_WINDOW = disp.intern_atom('_NET_ACTIVE_WINDOW')
|
||||
NET_WM_NAME = disp.intern_atom('_NET_WM_NAME') # UTF-8
|
||||
WM_NAME = disp.intern_atom('WM_NAME') # Legacy encoding
|
||||
NET_WM_CLASS = disp.intern_atom('_NET_WM_CLASS') # UTF-8
|
||||
WM_CLASS = disp.intern_atom('WM_CLASS')
|
||||
|
||||
last_seen = { 'xid': None, 'title': None }
|
||||
|
||||
@contextmanager
|
||||
def window_obj(win_id):
|
||||
"""Simplify dealing with BadWindow (make it either valid or None)"""
|
||||
window_obj = None
|
||||
if win_id:
|
||||
try:
|
||||
window_obj = disp.create_resource_object('window', win_id)
|
||||
except Xlib.error.XError:
|
||||
pass
|
||||
yield window_obj
|
||||
|
||||
def get_active_window():
|
||||
"""Return a (window_obj, focus_has_changed) tuple for the active window."""
|
||||
win_id = root.get_full_property(NET_ACTIVE_WINDOW,Xlib.X.AnyPropertyType).value[0]
|
||||
|
||||
focus_changed = (win_id != last_seen['xid'])
|
||||
if focus_changed:
|
||||
with window_obj(last_seen['xid']) as old_win:
|
||||
if old_win:
|
||||
old_win.change_attributes(event_mask=Xlib.X.NoEventMask)
|
||||
|
||||
last_seen['xid'] = win_id
|
||||
with window_obj(win_id) as new_win:
|
||||
if new_win:
|
||||
new_win.change_attributes(event_mask=Xlib.X.PropertyChangeMask)
|
||||
|
||||
return win_id, focus_changed
|
||||
|
||||
def _get_window_class_inner(win_obj):
|
||||
for atom in (NET_WM_CLASS, WM_CLASS):
|
||||
try:
|
||||
window_class = win_obj.get_full_property(atom, 0)
|
||||
|
||||
except UnicodeDecodeError: # Apparently a Debian distro package bug
|
||||
title = "<could not decode characters>"
|
||||
else:
|
||||
if window_class:
|
||||
win_class = window_class.value.split('\x00')[1]
|
||||
if isinstance(win_class, bytes):
|
||||
# Apparently COMPOUND_TEXT is so arcane that this is how
|
||||
# tools like xprop deal with receiving it these days
|
||||
win_class = win_class.split('\x00')[1].decode('latin1', 'replace')
|
||||
return win_class
|
||||
else:
|
||||
title = "<unnamed window>"
|
||||
|
||||
return "{} (XID: {})".format(title, win_obj.id)
|
||||
|
||||
def get_window_class(win_id):
|
||||
"""Look up the window name for a given X11 window ID"""
|
||||
if not win_id:
|
||||
last_seen['title'] = "<no window id>"
|
||||
return last_seen['title']
|
||||
|
||||
title_changed = False
|
||||
with window_obj(win_id) as wobj:
|
||||
if wobj:
|
||||
win_title = _get_window_class_inner(wobj)
|
||||
title_changed = (win_title != last_seen['title'])
|
||||
last_seen['title'] = win_title
|
||||
|
||||
return last_seen['title'], title_changed
|
||||
|
||||
def handle_xevent(event):
|
||||
# Loop through, ignoring events until we're notified of focus/title change
|
||||
if event.type != Xlib.X.PropertyNotify:
|
||||
return
|
||||
|
||||
changed = False
|
||||
if event.atom == NET_ACTIVE_WINDOW:
|
||||
if get_active_window()[1]:
|
||||
changed = changed or get_window_class(last_seen['xid'])[1]
|
||||
elif event.atom in (NET_WM_CLASS, WM_CLASS):
|
||||
changed = changed or get_window_class(last_seen['xid'])[1]
|
||||
|
||||
if changed:
|
||||
handle_change(last_seen)
|
||||
|
||||
def handle_change(new_state):
|
||||
"""Replace this with whatever you want to actually do"""
|
||||
print(new_state['title'])
|
||||
|
||||
if __name__ == '__main__':
|
||||
# Listen for _NET_ACTIVE_WINDOW changes
|
||||
root.change_attributes(event_mask=Xlib.X.PropertyChangeMask)
|
||||
|
||||
# Prime last_seen with whatever window was active when we started this
|
||||
get_window_class(get_active_window()[0])
|
||||
handle_change(last_seen)
|
||||
|
||||
while True: # next_event() sleeps until we get an event
|
||||
handle_xevent(disp.next_event())
|
||||
16
references/old-files/chromebook.sh
Executable file
16
references/old-files/chromebook.sh
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
mkdir -p ~/.xkb/{keymap,symbols,types}
|
||||
cp ./.xkb/symbols/chromebook ~/.xkb/symbols/chromebook
|
||||
cp ./.xkb/symbols/mac_gui ~/.xkb/symbols/mac_gui
|
||||
cp ./.xkb/types/mac_gui ~/.xkb/types/mac_gui
|
||||
setxkbmap -option
|
||||
setxkbmap -print > ~/.xkb/keymap/kbd.chromebook.gui
|
||||
setxkbmap -print > ~/.xkb/keymap/kbd.chromebook.term
|
||||
line=$(cat ~/.xkb/keymap/kbd.chromebook.gui | grep -n 'xkb_symbols' | cut -f1 -d:)
|
||||
sed -ie "${line}s/\"/+chromebook(swap_lalt_lctrl)+mac_gui(mac_levelssym)\"/2" ~/.xkb/keymap/kbd.chromebook.gui
|
||||
sleep 1
|
||||
line=$(cat ~/.xkb/keymap/kbd.chromebook.gui | grep -n 'xkb_types' | cut -f1 -d:)
|
||||
sed -ie "${line}s/\"/+mac_gui(addmac_levels)\"/2" ~/.xkb/keymap/kbd.chromebook.gui
|
||||
sleep 1
|
||||
line=$(cat ~/.xkb/keymap/kbd.chromebook.term | grep -n 'xkb_symbols' | cut -f1 -d:)
|
||||
sed -ie "${line}s/\"/+altwin(swap_alt_win)+mac_term(mac_levelssym)\"/2" ~/.xkb/keymap/kbd.chromebook.term
|
||||
176
references/old-files/install.py
Executable file
176
references/old-files/install.py
Executable file
@@ -0,0 +1,176 @@
|
||||
#!/usr/bin/env python3
|
||||
import os, platform, sysconfig, sys, subprocess, time
|
||||
|
||||
yellow = "\033[1;33m"
|
||||
green = "\033[0;32m"
|
||||
red = "\033[1;31m"
|
||||
italic = "\033[3m"
|
||||
reset = "\033[0;0m"
|
||||
|
||||
platform_name = platform.system()
|
||||
# print sysconfig.get_platform()
|
||||
|
||||
sys.stdout.write(yellow)
|
||||
cloud = '\u2601'
|
||||
circleo = '\u25CE'
|
||||
clocko = '\u2B6E'
|
||||
syme = '\u0250'
|
||||
syma = '\u0251'
|
||||
# bang = '\u1F589'.decode('unicode-escape')
|
||||
|
||||
internalid = 0
|
||||
usbid = 0
|
||||
|
||||
def keyboard_detect():
|
||||
global internalid, usbid, chromeswap, system_type
|
||||
internal_kbname = ""
|
||||
usb_kbname = ""
|
||||
|
||||
# If chromebook
|
||||
if system_type == "2":
|
||||
print()
|
||||
print("Looking for keyboards...")
|
||||
print()
|
||||
result = subprocess.check_output('xinput list | grep -iv "Virtual\|USB" | grep -i "keyboard.*keyboard" | grep -o -P "(?<=↳).*(?=id\=)";exit 0', shell=True).decode('utf-8')
|
||||
if result != "":
|
||||
internal_kbname = result.strip()
|
||||
internalid = subprocess.check_output('xinput list | grep -iv "Virtual\|USB" | grep -i "keyboard.*keyboard" | cut -d "=" -f 2- | awk \'{print $1}\' | tail -1;exit 0', shell=True).decode('utf-8')
|
||||
print("Internal Keyboard\nName: " + internal_kbname + "\nID: " + internalid)
|
||||
|
||||
result = subprocess.check_output('udevadm info -e | grep -o -P "(?<=by-id/usb-).*(?=-event-kbd)" | head -1;exit 0', shell=True).decode('utf-8')
|
||||
if result != "":
|
||||
usb_kbname = result.strip()
|
||||
|
||||
# Loop the following to ensure the id is picked up after 5-10 tries
|
||||
usbid = ""
|
||||
usbcount=0
|
||||
while usbid == "":
|
||||
usbid = subprocess.check_output('udevadm info -e | stdbuf -oL grep -o -P "(?<=event-kbd /dev/input/by-path/pci-0000:00:).*(?=.0-usb) | head -n 1";exit 0', shell=True).decode('utf-8')
|
||||
if usbid == "":
|
||||
usbcount += 1
|
||||
# print('usbid not found '+ str(usbcount))
|
||||
if usbcount == 5:
|
||||
usbid = "0"
|
||||
time.sleep(1)
|
||||
print("\nUSB Keyboard\n" + "Name: " + usb_kbname + "\nID: " + usbid)
|
||||
|
||||
if system_type == "1":
|
||||
system_type = "windows"
|
||||
elif system_type == "2":
|
||||
system_type = "chromebook"
|
||||
elif system_type == "3":
|
||||
result = subprocess.check_output('lsmod | grep hid_apple 1>/dev/null; echo $?', shell=True).decode('utf-8')
|
||||
if result.strip() == "0":
|
||||
system_type = "mac"
|
||||
else:
|
||||
system_type = "mac_only"
|
||||
print("Apple hid_apple driver is not loaded, a keymap that is specific for only Apple keyboards will be used.")
|
||||
|
||||
if system_type == "windows" or system_type == "mac":
|
||||
subprocess.check_output('/bin/bash -c ./mac_wordwise.sh', shell=True).decode('utf-8')
|
||||
cmdgui = '"setxkbmap -option;xkbcomp -w0 -I$HOME/.xkb ~/.xkb/keymap/kbd.mac.gui $DISPLAY"'
|
||||
elif system_type == "mac_only":
|
||||
subprocess.check_output('/bin/bash -c ./mac_only.sh', shell=True).decode('utf-8')
|
||||
cmdgui = '"setxkbmap -option;xkbcomp -w0 -I$HOME/.xkb ~/.xkb/keymap/kbd.mac.gui $DISPLAY"'
|
||||
elif system_type == "chromebook":
|
||||
subprocess.check_output('/bin/bash -c ./chromebook.sh', shell=True).decode('utf-8')
|
||||
cmdgui = '"setxkbmap -option;xkbcomp -w0 -I$HOME/.xkb ~/.xkb/keymap/kbd.chromebook.gui $DISPLAY"'
|
||||
|
||||
# password = getpass("Please enter your password to complete the keyswap: ")
|
||||
# proc = Popen("echo '1' | sudo tee -a /sys/module/hid_apple/parameters/swap_opt_cmd".split(), stdin=PIPE, stdout=PIPE, stderr=PIPE)
|
||||
# proc.communicate(password.encode())
|
||||
|
||||
if swap_behavior == 1:
|
||||
print("Setting up " + system_type + " keyswap as a service.")
|
||||
print("You can disable and remove the service by using the following command in the Kinto directory.")
|
||||
print("./uninstall.sh")
|
||||
|
||||
keyswapcmd = '/bin/bash -c "./keyswap_service.sh 1 0 ' + system_type + ' ' + str(internalid).strip() + ' ' + str(usbid).strip() + ' ' + str(chromeswap) + '"'
|
||||
# print(keyswapcmd)
|
||||
subprocess.check_output(keyswapcmd, shell=True).decode('utf-8')
|
||||
else:
|
||||
print("Setting up " + system_type + " keyswap inside your profiles ~/.Xsession file.")
|
||||
print("You can modify or remove the file if you want you want to remove the modification.")
|
||||
keyswapcmd = '/bin/bash -c \'./keyswap_service.sh 0 ' + cmdgui + '\''
|
||||
subprocess.check_output(keyswapcmd, shell=True).decode('utf-8')
|
||||
|
||||
if system_type == "mac":
|
||||
print()
|
||||
print("An Apple keyboard with the hid_apple driver was detected.")
|
||||
print("Please run the following commands to swap alt/option and Command.")
|
||||
print("Your Kinto keymapping will not work right on Apple keyboards without it.")
|
||||
print()
|
||||
print("echo '1' | sudo tee -a /sys/module/hid_apple/parameters/swap_opt_cmd")
|
||||
print('echo "options hid_apple swap_opt_cmd=1" | sudo tee -a /etc/modprobe.d/hid_apple.conf')
|
||||
print('sudo update-initramfs -u -k all')
|
||||
|
||||
|
||||
|
||||
def os_detect():
|
||||
print()
|
||||
print("Checking for OS and system information...")
|
||||
print()
|
||||
print("OS Type")
|
||||
# print(" Platform: " + platform_name)
|
||||
if platform_name == 'Linux':
|
||||
result = subprocess.check_output("lsb_release -a | grep -v LSB ", shell=True).decode('ascii')
|
||||
print(result)
|
||||
|
||||
def hwinfo():
|
||||
print("Requires user password to display hardware information...")
|
||||
result = subprocess.check_output('sudo dmidecode | grep -A 9 "System Information" | grep -v "UUID\|Serial\|SKU\|Wake"', shell=True).decode('ascii')
|
||||
print(result)
|
||||
|
||||
def kblist():
|
||||
result = subprocess.check_output('xinput list', shell=True).decode('ascii')
|
||||
print(result)
|
||||
|
||||
print()
|
||||
print()
|
||||
print(" Kint" + circleo)
|
||||
sys.stdout.write(reset)
|
||||
print(italic + " - F!x the d" + syma + "mn k" + syme + "yb" + circleo + syma + "rd. - ")
|
||||
sys.stdout.write(reset)
|
||||
print()
|
||||
input("Press Enter to begin...")
|
||||
|
||||
system_type = input("\nWhat type of keyboard are you using? (If Mac and Windows then select Mac)\n\
|
||||
1) Windows\n\
|
||||
2) Chromebook\n\
|
||||
3) Mac\n")
|
||||
|
||||
swap_behavior = 1
|
||||
chromeswap = 0
|
||||
# Chromebook
|
||||
if system_type == "2":
|
||||
if not input("\nWould you like to swap Alt to Super/Win and Search key to Ctrl when using terminal applications? (y/n)\n\
|
||||
Note: For a more mac like experience & less issues with terminal based interactions y is recommended.\n").lower().strip()[:1] == "y":
|
||||
swap_behavior = 0
|
||||
# Windows
|
||||
if system_type == "1":
|
||||
if not input("\nWould you like to swap Alt to Super/Win and Ctrl key back to Ctrl when using terminal applications? (y/n)\n\
|
||||
Note: For a more mac like experience & less issues with terminal based interactions y is recommended.\n").lower().strip()[:1] == "y":
|
||||
swap_behavior = 0
|
||||
# Mac
|
||||
if system_type == "3":
|
||||
if not input("\nWould you like to swap Command back to Super/Win and Ctrl key back to Ctrl when using terminal applications? (y/n)\n\
|
||||
Note: For a more mac like experience & less issues with terminal based interactions y is recommended.\n").lower().strip()[:1] == "y":
|
||||
swap_behavior = 0
|
||||
|
||||
if int(system_type) == 2 and swap_behavior == 1:
|
||||
chromeswap = input("\nIf the keyswap is applied on a chromebook with both an internal and external Apple keyboard\n\
|
||||
you may need to press a key on the external Apple keyboard any time you switch between the terminal and gui based apps.\n\
|
||||
Are you ok with that, or would you like to only apply the keyswap on one keyboard type?\n\
|
||||
1) Built-in\n\
|
||||
2) Both - (Chromebook & Windows)\n\
|
||||
3) Both - (Chromebook & Mac)\n\
|
||||
4) USB External - (Mac)\n")
|
||||
|
||||
if chromeswap == "1":
|
||||
chromeswap = "none"
|
||||
elif chromeswap == "2":
|
||||
chromeswap = "both_win"
|
||||
elif chromeswap == "3" or chromeswap == "4":
|
||||
chromeswap = "both_mac"
|
||||
|
||||
keyboard_detect()
|
||||
15
references/old-files/mac_only.sh
Executable file
15
references/old-files/mac_only.sh
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
mkdir -p ~/.xkb/{keymap,symbols,types}
|
||||
cp ./.xkb/symbols/mac_gui ~/.xkb/symbols/mac_gui
|
||||
cp ./.xkb/types/mac_gui ~/.xkb/types/mac_gui
|
||||
setxkbmap -option
|
||||
setxkbmap -print > ~/.xkb/keymap/kbd.mac.gui
|
||||
setxkbmap -print > ~/.xkb/keymap/kbd.mac.term
|
||||
line=$(cat ~/.xkb/keymap/kbd.mac.gui | grep -n 'xkb_symbols' | cut -f1 -d:)
|
||||
sed -ie "${line}s/\"/+ctrl(swap_lwin_lctl)+ctrl(swap_rwin_rctl)+mac_gui(mac_levelssym)\"/2" ~/.xkb/keymap/kbd.mac.gui
|
||||
sleep 1
|
||||
line=$(cat ~/.xkb/keymap/kbd.mac.gui | grep -n 'xkb_types' | cut -f1 -d:)
|
||||
sed -ie "${line}s/\"/+mac_gui(addmac_levels)\"/2" ~/.xkb/keymap/kbd.mac.gui
|
||||
sleep 1
|
||||
line=$(cat ~/.xkb/keymap/kbd.mac.term | grep -n 'xkb_symbols' | cut -f1 -d:)
|
||||
sed -ie "${line}s/\"/+altwin(alt_super_win)+mac_term(mac_levelssym)\"/2" ~/.xkb/keymap/kbd.mac.term
|
||||
15
references/old-files/mac_wordwise.sh
Executable file
15
references/old-files/mac_wordwise.sh
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
mkdir -p ~/.xkb/{keymap,symbols,types}
|
||||
cp ./.xkb/symbols/mac_gui ~/.xkb/symbols/mac_gui
|
||||
cp ./.xkb/types/mac_gui ~/.xkb/types/mac_gui
|
||||
setxkbmap -option
|
||||
setxkbmap -print > ~/.xkb/keymap/kbd.mac.gui
|
||||
setxkbmap -print > ~/.xkb/keymap/kbd.mac.term
|
||||
line=$(cat ~/.xkb/keymap/kbd.mac.gui | grep -n 'xkb_symbols' | cut -f1 -d:)
|
||||
sed -ie "${line}s/\"/+altwin(ctrl_alt_win)+mac_gui(mac_levelssym)\"/2" ~/.xkb/keymap/kbd.mac.gui
|
||||
sleep 1
|
||||
line=$(cat ~/.xkb/keymap/kbd.mac.gui | grep -n 'xkb_types' | cut -f1 -d:)
|
||||
sed -ie "${line}s/\"/+mac_gui(addmac_levels)\"/2" ~/.xkb/keymap/kbd.mac.gui
|
||||
sleep 1
|
||||
line=$(cat ~/.xkb/keymap/kbd.mac.term | grep -n 'xkb_symbols' | cut -f1 -d:)
|
||||
sed -ie "${line}s/\"/+altwin(swap_alt_win)+mac_term(mac_levelssym)\"/2" ~/.xkb/keymap/kbd.mac.term
|
||||
9
references/old-files/old_uninstall.sh
Executable file
9
references/old-files/old_uninstall.sh
Executable file
@@ -0,0 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
systemctl --user stop keyswap
|
||||
systemctl --user disable keyswap
|
||||
rm -rf ~/.config/autostart/keyswap.sh
|
||||
rm -rf ~/.config/xactive.sh
|
||||
rm -rf ~/.xkb
|
||||
|
||||
sed -i '/xkb/d' ~/.Xsession
|
||||
316
references/old-files/test.py
Executable file
316
references/old-files/test.py
Executable file
@@ -0,0 +1,316 @@
|
||||
# pip3 install pynput
|
||||
# pip3 install --no-deps pynput
|
||||
|
||||
from pynput.keyboard import Key, Listener
|
||||
import sys, subprocess
|
||||
|
||||
uitype=sys.argv[1]
|
||||
apply_rules=sys.argv[2]
|
||||
windows=sys.argv[3]
|
||||
chromebook=sys.argv[4]
|
||||
mac=sys.argv[5]
|
||||
|
||||
class color:
|
||||
PURPLE = '\033[95m'
|
||||
CYAN = '\033[96m'
|
||||
DARKCYAN = '\033[36m'
|
||||
BLUE = '\033[94m'
|
||||
GREEN = '\033[92m'
|
||||
YELLOW = '\033[93m'
|
||||
RED = '\033[91m'
|
||||
BOLD = '\033[1m'
|
||||
UNDERLINE = '\033[4m'
|
||||
END = '\033[0m'
|
||||
|
||||
def on_press(key):
|
||||
print('{0} pressed'.format(key))
|
||||
|
||||
def on_release(key):
|
||||
# print('{0} release'.format(key))
|
||||
if key == Key.esc:
|
||||
# Stop listener
|
||||
return False
|
||||
|
||||
def is_ctrl_winchrome(key):
|
||||
if key == Key.ctrl:
|
||||
# print(str(key).replace("Key.", "").title() +' successfully mapped to physical Alt key.'.format(key))
|
||||
print(color.GREEN + 'Success' + color.END + ' Alt is now Ctrl')
|
||||
return False
|
||||
elif key == Key.esc:
|
||||
return False
|
||||
else:
|
||||
print('keymap failure, ' + str(key).replace("Key.", "").title() + ' may have been mapped to the physical Alt key.'.format(key))
|
||||
return False
|
||||
|
||||
def is_ctrl_mac(key):
|
||||
if key == Key.ctrl:
|
||||
# print(str(key).replace("Key.", "").title() +' successfully mapped to physical Alt key.'.format(key))
|
||||
print(color.GREEN + 'Success' + color.END + ' Command is now Ctrl')
|
||||
return False
|
||||
elif key == Key.esc:
|
||||
return False
|
||||
else:
|
||||
print('keymap failure, ' + str(key).replace("Key.", "").title() + ' may have been mapped to the physical Command key.'.format(key))
|
||||
return False
|
||||
|
||||
def is_ctrl_terminal(key):
|
||||
if key == Key.ctrl:
|
||||
# print(str(key).replace("Key.", "").title() +' successfully mapped to physical Ctrl key.'.format(key))
|
||||
print(color.GREEN + 'Success' + color.END + ' Ctrl remains Ctrl,\nwhile in terminal apps.')
|
||||
return False
|
||||
elif key == Key.esc:
|
||||
return False
|
||||
else:
|
||||
print('keymap failure, ' + str(key).replace("Key.", "").title() + ' may have been mapped to the physical Ctrl key.'.format(key))
|
||||
return False
|
||||
|
||||
def is_alt_chromebook(key):
|
||||
if key == Key.alt:
|
||||
# print(str(key).replace("Key.", "").title() +' successfully mapped to the physical Ctrl key.'.format(key))
|
||||
print(color.GREEN + 'Success' + color.END + ' Ctrl is now Alt')
|
||||
return False
|
||||
elif key == Key.esc:
|
||||
return False
|
||||
else:
|
||||
print('keymap failure, ' + str(key).replace("Key.", "").title() + ' may have been mapped to the physical Ctrl key.'.format(key))
|
||||
return False
|
||||
|
||||
def is_alt_windows(key):
|
||||
if key == Key.alt:
|
||||
# print(str(key).replace("Key.", "").title() +' successfully mapped to the physical Ctrl key.'.format(key))
|
||||
print(color.GREEN + 'Success' + color.END + ' Win/Super is now Alt')
|
||||
return False
|
||||
elif key == Key.esc:
|
||||
return False
|
||||
else:
|
||||
print('keymap failure, ' + str(key).replace("Key.", "").title() + ' may have been mapped to the physical Win/Super key.'.format(key))
|
||||
return False
|
||||
|
||||
def is_alt_mac(key):
|
||||
if key == Key.alt:
|
||||
# print(str(key).replace("Key.", "").title() +' successfully mapped to the physical Ctrl key.'.format(key))
|
||||
print(color.GREEN + 'Success' + color.END + ' Alt remains Alt')
|
||||
return False
|
||||
elif key == Key.esc:
|
||||
return False
|
||||
else:
|
||||
print('keymap failure, ' + str(key).replace("Key.", "").title() + ' may have been mapped to the physical Alt key.'.format(key))
|
||||
return False
|
||||
|
||||
def is_alt_chromebook_terminal(key):
|
||||
if key == Key.alt:
|
||||
# print(str(key).replace("Key.", "").title() +' successfully mapped to the physical Search key.'.format(key))
|
||||
print(color.GREEN + 'Success' + color.END + ' Search is now Alt,\nwhile in terminals apps.')
|
||||
return False
|
||||
elif key == Key.esc:
|
||||
return False
|
||||
else:
|
||||
print('keymap failure, ' + str(key).replace("Key.", "").title() + ' may have been mapped to the physical Search key.'.format(key))
|
||||
return False
|
||||
|
||||
def is_super_winmac(key):
|
||||
if key == Key.cmd:
|
||||
# print('Super/Win successfully mapped to the physical Search key.'.format(key))
|
||||
print(color.GREEN + 'Success' + color.END + ' Ctrl key is Super/Win')
|
||||
return False
|
||||
elif key == Key.esc:
|
||||
return False
|
||||
else:
|
||||
print('keymap failure, ' + str(key).replace("Key.", "").title() + ' may have been mapped to the physical Ctrl key.'.format(key))
|
||||
return False
|
||||
|
||||
def is_super_chromebook(key):
|
||||
if key == Key.cmd:
|
||||
# print('Super/Win successfully mapped to the physical Search key.'.format(key))
|
||||
print(color.GREEN + 'Success' + color.END + ' Search key is Super/Win')
|
||||
return False
|
||||
elif key == Key.esc:
|
||||
return False
|
||||
else:
|
||||
print('keymap failure, ' + str(key).replace("Key.", "").title() + ' may have been mapped to the physical Search key.'.format(key))
|
||||
return False
|
||||
|
||||
def is_super_terminal(key):
|
||||
if key == Key.cmd:
|
||||
# print('Super/Win successfully mapped to the physical Alt key.'.format(key))
|
||||
print(color.GREEN + 'Success' + color.END + ' Alt is now Super/Win,\nwhile in terminal apps.')
|
||||
return False
|
||||
elif key == Key.esc:
|
||||
return False
|
||||
else:
|
||||
print('keymap failure, ' + str(key).replace("Key.", "").title() + ' may have been mapped to the physical Alt key.'.format(key))
|
||||
return False
|
||||
|
||||
def is_super_mac_terminal(key):
|
||||
if key == Key.cmd:
|
||||
# print('Super/Win successfully mapped to the physical Alt key.'.format(key))
|
||||
print(color.GREEN + 'Success' + color.END + ' Command is now Super/Win,\nwhile in terminal apps.')
|
||||
return False
|
||||
elif key == Key.esc:
|
||||
return False
|
||||
else:
|
||||
print('keymap failure, ' + str(key).replace("Key.", "").title() + ' may have been mapped to the physical Command key.'.format(key))
|
||||
return False
|
||||
|
||||
def chromebook_keys_gui():
|
||||
print()
|
||||
print(color.UNDERLINE + color.YELLOW + "Press the physical Alt" + color.END + " key to confirm the new keymapping to Ctrl..")
|
||||
with Listener(
|
||||
# on_press=on_press,
|
||||
on_release=is_ctrl_winchrome) as listener:
|
||||
listener.join()
|
||||
print()
|
||||
print(color.UNDERLINE + color.YELLOW + "Press the physical Ctrl" + color.END + " key to confirm the new keymapping to Alt..")
|
||||
with Listener(
|
||||
# on_press=on_press,
|
||||
on_release=is_alt_chromebook) as listener:
|
||||
listener.join()
|
||||
print()
|
||||
print(color.UNDERLINE + color.YELLOW + "Press the physical Search" + color.END + " key to confirm the new keymapping to Super/Win..")
|
||||
with Listener(
|
||||
# on_press=on_press,
|
||||
on_release=is_super_chromebook) as listener:
|
||||
listener.join()
|
||||
|
||||
def chromebook_keys_terminal():
|
||||
print()
|
||||
print(color.UNDERLINE + color.YELLOW + "Press the physical Alt" + color.END + " key to confirm the new keymapping to Super/Win..")
|
||||
with Listener(
|
||||
# on_press=on_press,
|
||||
on_release=is_super_terminal) as listener:
|
||||
listener.join()
|
||||
print()
|
||||
print(color.UNDERLINE + color.YELLOW + "Press the physical Ctrl" + color.END + " key to confirm the new keymapping to Ctrl..")
|
||||
with Listener(
|
||||
# on_press=on_press,
|
||||
on_release=is_ctrl_terminal) as listener:
|
||||
listener.join()
|
||||
print()
|
||||
print(color.UNDERLINE + color.YELLOW + "Press the physical Search" + color.END + " key to confirm the new keymapping to Alt..")
|
||||
with Listener(
|
||||
# on_press=on_press,
|
||||
on_release=is_alt_chromebook_terminal) as listener:
|
||||
listener.join()
|
||||
|
||||
def windows_keys_gui():
|
||||
print()
|
||||
print(color.UNDERLINE + color.YELLOW + "Press the physical Alt" + color.END + " key to confirm the new keymapping to Ctrl..")
|
||||
with Listener(
|
||||
# on_press=on_press,
|
||||
on_release=is_ctrl_winchrome) as listener:
|
||||
listener.join()
|
||||
print()
|
||||
print(color.UNDERLINE + color.YELLOW + "Press the physical Win/Super" + color.END + " key to confirm the new keymapping to Alt..")
|
||||
with Listener(
|
||||
# on_press=on_press,
|
||||
on_release=is_alt_windows) as listener:
|
||||
listener.join()
|
||||
print()
|
||||
print(color.UNDERLINE + color.YELLOW + "Press the physical Ctrl" + color.END + " key to confirm the new keymapping to Win/Super..")
|
||||
with Listener(
|
||||
# on_press=on_press,
|
||||
on_release=is_super_winmac) as listener:
|
||||
listener.join()
|
||||
|
||||
def windows_keys_terminal():
|
||||
print()
|
||||
print(color.UNDERLINE + color.YELLOW + "Press the physical Alt" + color.END + " key to confirm the new keymapping to Super/Win..")
|
||||
with Listener(
|
||||
# on_press=on_press,
|
||||
on_release=is_super_terminal) as listener:
|
||||
listener.join()
|
||||
print()
|
||||
print(color.UNDERLINE + color.YELLOW + "Press the physical Win/Super" + color.END + " key to confirm the new keymapping to Alt..")
|
||||
with Listener(
|
||||
# on_press=on_press,
|
||||
on_release=is_alt_windows) as listener:
|
||||
listener.join()
|
||||
print()
|
||||
print(color.UNDERLINE + color.YELLOW + "Press the physical Ctrl" + color.END + " key to confirm the new keymapping to Ctrl..")
|
||||
with Listener(
|
||||
# on_press=on_press,
|
||||
on_release=is_ctrl_terminal) as listener:
|
||||
listener.join()
|
||||
|
||||
def mac_keys_gui():
|
||||
print()
|
||||
print(color.UNDERLINE + color.YELLOW + "Press the physical Command" + color.END + " key to confirm the new keymapping to Ctrl..")
|
||||
with Listener(
|
||||
# on_press=on_press,
|
||||
on_release=is_ctrl_mac) as listener:
|
||||
listener.join()
|
||||
print()
|
||||
print(color.UNDERLINE + color.YELLOW + "Press the physical Alt" + color.END + " key to confirm it remains Alt..")
|
||||
with Listener(
|
||||
# on_press=on_press,
|
||||
on_release=is_alt_mac) as listener:
|
||||
listener.join()
|
||||
print()
|
||||
print(color.UNDERLINE + color.YELLOW + "Press the physical Ctrl" + color.END + " key to confirm the new keymapping to Win/Super..")
|
||||
with Listener(
|
||||
# on_press=on_press,
|
||||
on_release=is_super_winmac) as listener:
|
||||
listener.join()
|
||||
|
||||
def mac_keys_terminal():
|
||||
print()
|
||||
print(color.UNDERLINE + color.YELLOW + "Press the physical Command" + color.END + " key to confirm the new keymapping to Super/Win..")
|
||||
with Listener(
|
||||
# on_press=on_press,
|
||||
on_release=is_super_mac_terminal) as listener:
|
||||
listener.join()
|
||||
print()
|
||||
print(color.UNDERLINE + color.YELLOW + "Press the physical Alt" + color.END + " key to confirm it remains Alt..")
|
||||
with Listener(
|
||||
# on_press=on_press,
|
||||
on_release=is_alt_mac) as listener:
|
||||
listener.join()
|
||||
print()
|
||||
print(color.UNDERLINE + color.YELLOW + "Press the physical Ctrl" + color.END + " key to confirm it remains Ctrl..")
|
||||
with Listener(
|
||||
# on_press=on_press,
|
||||
on_release=is_ctrl_terminal) as listener:
|
||||
listener.join()
|
||||
|
||||
if uitype == 'gui':
|
||||
if chromebook == '1':
|
||||
if apply_rules == '1':
|
||||
subprocess.check_output('setxkbmap -option;xkbcomp -w0 -I$HOME/.xkb ~/.xkb/keymap/kbd.chromebook.gui $DISPLAY', shell=True).decode('utf-8')
|
||||
print()
|
||||
print("Testing chromebook - GUI apps - Kinto keymapping...")
|
||||
chromebook_keys_gui()
|
||||
|
||||
if windows == '1':
|
||||
if apply_rules == '1':
|
||||
subprocess.check_output('setxkbmap -option;xkbcomp -w0 -I$HOME/.xkb ~/.xkb/keymap/kbd.mac.gui $DISPLAY', shell=True).decode('utf-8')
|
||||
print()
|
||||
print ("Testing windows keyboard - GUI apps - Kinto keymapping...")
|
||||
windows_keys_gui()
|
||||
|
||||
if mac == '1':
|
||||
if apply_rules == '1':
|
||||
subprocess.check_output('setxkbmap -option;xkbcomp -w0 -I$HOME/.xkb ~/.xkb/keymap/kbd.mac.gui $DISPLAY', shell=True).decode('utf-8')
|
||||
print ("Testing mac keyboard - GUI apps - Kinto keymapping...")
|
||||
mac_keys_gui()
|
||||
|
||||
if uitype == 'term':
|
||||
if chromebook == '1':
|
||||
if apply_rules == '1':
|
||||
subprocess.check_output('setxkbmap -option;setxkbmap -option altwin:swap_lalt_lwin', shell=True).decode('utf-8')
|
||||
print("Testing chromebook - terminal - Kinto keymapping...")
|
||||
chromebook_keys_terminal()
|
||||
|
||||
if windows == '1':
|
||||
if apply_rules == '1':
|
||||
subprocess.check_output('setxkbmap -option;setxkbmap -option altwin:swap_alt_win', shell=True).decode('utf-8')
|
||||
print ("Testing windows keyboard - terminal - Kinto keymapping...")
|
||||
windows_keys_terminal()
|
||||
|
||||
if mac == '1':
|
||||
if apply_rules == '1':
|
||||
subprocess.check_output('setxkbmap -option;setxkbmap -option altwin:swap_alt_win', shell=True).decode('utf-8')
|
||||
print ("Testing mac keyboard - terminal - Kinto keymapping...")
|
||||
mac_keys_terminal()
|
||||
|
||||
if apply_rules == '1':
|
||||
subprocess.run('setxkbmap -option', shell=True)
|
||||
Reference in New Issue
Block a user