Search code examples
sublimetext2key-bindings

Sublime Text 2 and Backspace(left_delete) issue


I am having issue with backspace key binding which is not deleting words in Sublime Text 2 only. In order to back space, either I have to highlight the character(s) that I want to delete and hit backspace or use ctrl + z to go back. And, ctrl + backspace erases the enter word rather than just one character(s). Also, shift + backspace has no effect eventhough it suppose to do the same thing as backspace.

I enabled sublime_log_commands(True) to display the key binding in real time and the log displays the proper binding taking place however it does not deleting any character(s) at all.

backpace => command: left_delete

shift + backspace => command: left_delete

&

Ctrl + backspace => command: delete_word {"forward": false} ( this one I am fine with)

Then, I installed FindKeyConflicts plug-in to see if there was any conflicts but the out put seems fine, IMO.

[shift+backspace]
left_delete                              Default
  .
  .
  .
[ctrl+shift+backspace]
left_delete                              Default               
run_macro_file                           Default
 .
 .
[ctrl+backspace]
delete_word                              Default 
.
 .
[backspace]
left_delete                              Default               
run_macro_file                            Default           
         [{"operator": "equal", "operand": true, "key": "setting.auto_match_enabled"}, {"operator":            
        "regex_contains", "operand": "^\"", "match_all": true, "key": "following_text"}, {"operator": 
        "regex_contains", "operand": "\"$", "match_all": true, "key": "preceding_text"}, {"operator": 
         "equal", "operand": true, "match_all": true, "key": "selection_empty"}]
run_macro_file                           Default            
          [{"operator": "equal", "operand": true, "key": "setting.auto_match_enabled"}, {"operator": 
         "regex_contains", "operand": "^'", "match_all": true, "key": "following_text"}, {"operator": 
          "regex_contains", "operand": "'$", "match_all": true, "key": "preceding_text"}, {"operator": 
         "equal", "operand": true, "match_all": true, "key": "selection_empty"}]
 run_macro_file                           Default              
          [{"operator": "equal", "operand": true, "key": "setting.auto_match_enabled"}, {"operator":  
          "regex_contains", "operand": "^\\)", "match_all": true, "key": "following_text"}, 
         {"operator": "regex_contains", "operand": "\\($", "match_all": true, "key": "preceding_text"}, 
          {"operator": "equal", "operand": true, "match_all": true, "key": "selection_empty"}]
 run_macro_file                           Default               
         [{"operator": "equal", "operand": true, "key": "setting.auto_match_enabled"}, {"operator": 
         "regex_contains", "operand": "^\\]", "match_all": true, "key": "following_text"}, {"operator":  
         "regex_contains", "operand": "\\[$", "match_all": true, "key": "preceding_text"}, {"operator": 
           "equal", "operand": true, "match_all": true, "key": "selection_empty"}]
 run_macro_file                           Default              
          [{"operator": "equal", "operand": true, "key": "setting.auto_match_enabled"}, {"operator": 
          "regex_contains", "operand": "^\\}", "match_all": true, "key": "following_text"}, 
           {"operator": "regex_contains", "operand": "\\{$", "match_all": true, "key": 
           "preceding_text"}, {"operator": "equal", "operand": true, "match_all": true, "key": 
           "selection_empty"}]
run_macro_file                           CSS                  
          [{"operator": "equal", "operand": true, "key": "setting.auto_match_enabled"}, {"operator": 
          "regex_contains", "operand": "^;", "match_all": true, "key": "following_text"}, {"operator": 
          "regex_contains", "operand": ":$", "match_all": true, "key": "preceding_text"}, {"operator": 
           "equal", "operand": true, "match_all": true, "key": "selection_empty"}, {"operator":  
          "equal", "operand": "source.css - meta.selector.css", "match_all": true, "key": "selector"}]

If anyone has any suggestion or work around on how to restore normal backspace operation, I would love to hear it.


Solution

  • Since you said it fixed the issue, I will add it as an answer:

    Close all instances, go to your Sublime Text 2 folder and rename to Sublime Text 2 - Backup (for linux, sublime-text-2.backup). So that you don't lose any important stuff. Reopen sublime. This will re-add the aforementioned folder with the default bindings and no extra plugins.

    To see what is causing the issue: start adding back the plugins you were using, one by one, and see which breaks backspace. It could also be an issue with conflicting key bindings. So add personal bindings in the same manner as plugins.