title: How to prevent Sublime Text 2 from swallowing closing brackets, quotes and parentheses?
body: <p>Sublime has this behaviour which is really annoying sometimes when you have to type in constructions with lots of brackets. When you type <code>(</code> it adds <code>()</code> and puts the cursor in the middle, all fine, if you however will type <code>)</code> it will silently swallow the closing bracket.</p>
  
  <p>This is really annoying when typing long regexps because the brackets gets unbalanced pretty quick and this is driving me crazy. So you end up with constructions like <code>(([a-z])</code>.</p>
  
  <p>So the question is - is there a way to disable this? If I type a closing bracket I want it to stay, not be swallowed.</p>
  
  <p>I have checked through Sublime configs, googled, but nobody seems to mind this behaviour. Am I using it wrong? </p>
  
  <p><strong>Update</strong></p>
  
  <p>You might want to check out <a href="https://stackoverflow.com/questions/8537844/is-there-a-shortcut-in-pycharm-or-sublime-text-2-for-jump-out-of-matching-bracke#answer-11711589"><strong>Sublime: Jump out of matching brackets</strong></a> shortcut as well.</p>
  
  <p>Full version that allows you to type through with <code>()</code> but will not swallow the closing symbol if you have entered any text:</p>
  
  <pre><code>  { "keys": ["\""], "command": "insert", "args": {"characters": "\""}, "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": "preceding_text", "operator": "regex_contains", "operand": "[^\"]$", "match_all": true }
        ]
    },
    { "keys": [")"], "command": "insert", "args": {"characters": ")"}, "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": "preceding_text", "operator": "regex_contains", "operand": "[^(]$", "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": "preceding_text", "operator": "regex_contains", "operand": "\\($", "match_all": true }
        ]
    },
    { "keys": ["'"], "command": "insert", "args": {"characters": "'"}, "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": "preceding_text", "operator": "regex_contains", "operand": "'$", "match_all": true }
        ]
    },
    { "keys": ["]"],"command": "insert", "args": {"characters": "]"}, "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": "preceding_text", "operator": "regex_contains", "operand": "[$", "match_all": true }
        ]
    },
    { "keys": ["}"], "command": "insert", "args": {"characters": "}"}, "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": "preceding_text", "operator": "regex_contains", "operand": "{$", "match_all": true }
  
        ]
    }
  </code></pre>