jps wrote:I can understand that this hurts in some situations, such as when trying to line things up vertically, but I believe it's a win overall.
I see the rationale for it, but I'd really appreciate an option to disable it. For me, down in the level of my fingers, 'backspace' means remove exactly one character. It means 'back a space.' That's built-in on a nervous level.
What I'd rather see in python mode (or really anything with blocks) is preceding whitespace designated as 'words' for the delete word command (ctrl+back). So that lines are interpreted like this;
for x in range(1,3):<ws-1><ws-2>
if p > 4:<ws-1><ws-2><ws-3>
print "hello, world!"<ws-1>
So that if my cursor is just before the print statement, ctrl+back deletes the <ws-3> whitespace token, then <ws-2>, then <ws-1>. I think this is how the python lexer works -- it inserts these whitespace tokens so that the parser understands the indentation involved.
Now that may not be where you want to go, but I'd really like an option for backspace to be delete-one-character, and ctrl+backspace to do the tabbed deletion that is there by default on backspace.
You can always do a plugin for that
I am with you on this one, sometimes leftDeleteCharacters erases too much specially with ctrl+backspace which uses the "delete word left" macro.
Really I think some people like Jon said might find that suitable for them but for me, I rather have:
ctrl+backspace = delete by characters class, if it's whitespace, erase whitespace, if it's words, erase words, etc...
backspace = one character erase
shift+backspace = default sublime behavior which deletes tab (space) indents
of course same applies for delete, just in opposite direction...
the first 2 solutions are all possible with plugins, the other one is there by default... so I am a happy camper