Created
January 13, 2014 08:41
-
-
Save koulmomo/8396647 to your computer and use it in GitHub Desktop.
Perfect Sublime Text 2 Key Bindings. Tab to skip out of brackets, braces, parentheses, and quotes/quotations but still be able to indent
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[ | |
// Move out of common paired characters () and [] with `Tab` | |
{ | |
"keys": ["tab"], | |
"command": "move", | |
"args": {"by": "characters", "forward": true}, | |
"context": [ | |
// Check if next char matches (followed by anything) | |
{ "key": "following_text", "operator": "regex_match", "operand": "(:?`|\\)|\\]|\\}).*", "match_all": true }, | |
// ...and that there is a paid character before it on the same | |
// line. This lets you `tab` to Indent at lines with single ]s | |
// still, like in a JSOn file | |
{ "key": "preceding_text", "operator": "regex_contains", "operand": "(:?`|\\(|\\[|\\{)", "match_all": true } | |
] | |
}, | |
// Move out of single and double quotes with `Tab` | |
{ | |
"keys": ["tab"], | |
"command": "move", | |
"args": {"by": "characters", "forward": true}, | |
"context": [ | |
{ "key": "following_text", "operator": "regex_match", "operand": "(?:\"|').*", "match_all": true }, | |
{ "key": "preceding_text", "operator": "regex_contains", "operand": "(?:\"|')", "match_all": true } | |
] | |
} | |
] |
I found another way which lies within sublime keybindings itself. Basically, I just modify the keybindings for auto closing parens, that is, I replace "contents": "($0)"
with "contents": "($1)$0"
. Then just hit Tab
to get out of the parenthesis. So I add in my keybindings the following:
{ "keys": ["("], "command": "insert_snippet", "args": {"contents": "($1)$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 }
]
},
And similar for square brackets, curly brackets, and single and double quotes.
can you make one for Brackets as well?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Im copy pasting this into my keybindings for user, but keep getting an error.
Error trying to parse file: Unexpected trailing characters in ~/Library/Application Support/Sublime Text 2/Packages/Default/Default (OSX).sublime-keymap:40:2
I tried removing some brackets then I get a comma error, I put commas, comes back to this error, any help would be appreciated. thanks