On Fri, 03 Apr 2009 08:51:47 +1100, Ben Finney wrote: > Steven D'Aprano <st...@remove-this-cybersource.com.au> writes: > >> I like tab-completion, but I'd rather not be reduced to typing spaces >> for indents in the interpreter. What do other people do? > > Acknowledge that using U+0009 for indentation is wrong, and use > beautiful U+0020 always.
Perhaps you missed the "in the interpreter". I'm *not* talking about what happens when I hit TAB in my editor, I'm talking about hitting TAB in an interactive Python session in a console window. I expect TAB to result in an indent level, and backspace to remove that indent level. Tab- completion clashes with that. When defining a function in the interactive interpreter: >>> def spam(): ... return "spam" ... >>> I do not wish to type four literal spaces to indent the 'return' line, or backspace four times to remove it, but with tab-completion I am forced to. I'm used to pressing the TAB key once to get an indent. Within the interpreter, I do not care whether it inserts a tab character or four spaces or seven formfeed characters, so long as the Python parser recognises it as a single indent level and typing backspace once removes that indent level. I'm sorry if this was unclear from my post. >> The GNU readline library claims that M-tab (which I guess is Alt-tab) >> will enter a tab character. > > “M-tab” is Emacs-speak for “<Meta> plus <Tab>”. Not all keyboards have > “Alt”, you see (maybe none, when Emacs first started referring to the > Meta modifier?). But on my keyboard, I have no Meta key, I have an Alt key. > In most terminal programs, you can send “<Alt>-<foo>” also by pressing > “<Esc>, <foo>” (two separate keystrokes in sequence). > >> Any other suggestions or hints? > > Suck it up and accept the truth! U+0020 is the unambiguous indentation > character that always does what it should, and U+0009 is a horrible > mistake which must be suppressed with extreme prejudice. No true > Pythonista would disagree. The "No true Scotsman" fallacy. But regardless of what I use in my source code, I'm purely talking about interactive sessions in a console, not an editor. -- Steven -- http://mail.python.org/mailman/listinfo/python-list