I haven't looked deeply into this but I was wondering if anyone else found the behavior of TAB in REPL buffers a bit annoying. I'm so used to using TAB to indent code that I'm constantly hitting it to try to line up my code in the REPL. Which usually results in a huge *Completions* typeout window popping up with a list of every symbol in existance because I'm usually sitting on some whitespace. I notice in lisp source buffers TAB is *not* bound to slime-complete-symbol.
Should I just remap TAB myself or does anyone else find the current behavior annoying and perhaps worth changing?
-Peter
On Fri, Mar 26, 2004 at 08:24:23AM -0800, Peter Seibel wrote:
I haven't looked deeply into this but I was wondering if anyone else found the behavior of TAB in REPL buffers a bit annoying. I'm so used to using TAB to indent code that I'm constantly hitting it to try to line up my code in the REPL. Which usually results in a huge *Completions* typeout window popping up with a list of every symbol in existance because I'm usually sitting on some whitespace. I notice in lisp source buffers TAB is *not* bound to slime-complete-symbol.
Should I just remap TAB myself or does anyone else find the current behavior annoying and perhaps worth changing?
My biggest annoyance is not that TAB is bound to slime-complete-symbol (I've kind of grown to like the command-line style completion for interactive usage - although I still automatically tend to use C-M-i, since it works everywhere), but that there isn't a key bound to indenting lines, the traditional function of TAB. I like to build longish expressions in the REPL, and it's a real pain to keep them indented.
(Obviously I've been too lazy to bind my own keys. :)
-bcd
Peter Seibel peter@javamonkey.com writes:
Should I just remap TAB myself or does anyone else find the current behavior annoying and perhaps worth changing?
I changed the TAB command, so that it first indents the current line. If indenting doesn't move the cursor, it performs symbol completion. Is that better?
Helmut.
Helmut Eller e9626484@stud3.tuwien.ac.at writes:
Peter Seibel peter@javamonkey.com writes:
Should I just remap TAB myself or does anyone else find the current behavior annoying and perhaps worth changing?
I changed the TAB command, so that it first indents the current line. If indenting doesn't move the cursor, it performs symbol completion. Is that better?
I would also check that last-command is the TAB command before doing symbol completion. That way you can rely on the first TAB stroke not to change your code. Consistency is the cornerstone of good UI's.
Helmut Eller e9626484@stud3.tuwien.ac.at writes:
Peter Seibel peter@javamonkey.com writes:
Should I just remap TAB myself or does anyone else find the current behavior annoying and perhaps worth changing?
I changed the TAB command, so that it first indents the current line. If indenting doesn't move the cursor, it performs symbol completion. Is that better?
Yes, much better, thanks.
That said, I'm still a bit bothered by the typeout window popping up for the expansions. For some reason or another on my iBook it takes over the whole frame and there's no way to kill it short of without C-x k or several other keystrokes to pick out the right symbol. I'd much rather have the completion work in place, more like dabbrev-expand.
However, I'm not really complaining about that as I have spent zero time looking into how this actually works to see if I can get it to do what I want by simple configuration or with a patch. One of these days my annoyance- and free-time curves will intersect and I'll look into programming the behavior I think I want in order to see if it actually is better.
-Peter