Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Oh my God! They killed completion! YOU BASTARDS!

Andrew Main wrote:
>pacman@xxxxxxx wrote:
>There was a policy decision made in 3.1.1 that, generally speaking, the
>clever interactive options should be enabled by default.

For new features, that might make sense. For things which are variations on
an existing feature, I'm not so sure.

>                                                          It does change
>the default behaviour, but it doesn't affect scripts (where compatibility
>really matters), and the new behaviour is usually preferred.

It broke a script in my head, which says "Left little finger pushes tab. Eyes
move to bottom of screen to find cursor". My brain-script has been working
that way since zsh 2.5 or so, and before that, it worked that way with tcsh.

>The Etc/NEWS file does list new options.  These options being on by
>default isn't listed, but this is a beta version, and it is listed in
>the ChangeLog.

OK, now I have a roadmap for upgrade: read that new option list and then
check their description, and turn them off if you're married to the old

>>17:01 6 londo /home/pacman/src %echo $ZSH_ <--\
>>ZSH_NAME     ZSH_VERSION                      |
>>                              /---------------/
>>My cursor is sitting HERE! --/ WHAT THE HELL IS THAT?
>ALWAYS_LAST_PROMPT.  One of my favourite features.  It means that you
>don't waste screen space with old completion lists -- new lists visibly
>replace the old one -- and the command line doesn't jump around, so
>it's easier to keep your eyes on what you're editing.  This has been
>available since 2.5.

You make it sound so nice, but I'm really used to knowing that everything
after my prompt is part of the command I'm typing. Considering multi-line,
ZLE, there really is no clear separator between what is part of the command
line, and what is just some other stuff after it, except that you can't move
the cursor down there. Even ^R and ^L treat the completion list as if it was
part of the command line! Ugh!

>I'm glad to see I'm not the only person that gets this emotional about
>computer programs.

You should have seen me. I was pounding my desk and straining to keep from

>But ALWAYS_LAST_PROMPT is right.  It's SO right.  So vastly right that
>having to use bash purees my brain when it puts the completion list in
>the wrong place.

That's funny, the first thing I thought when I saw it happen was "Oh no, this
must be some crazy bash feature. They're cloning bash now."

>"unsetopt alwayslastprompt".

What I tried was "setopt noalwayslastprompt" and it didn't seem to have an
effect. Of course now, after I complain about it, it does. I should have
saved the history from that test, because now I'll never know what was
happening. OK, I'll revise my complaint: FAQ 4.3, which lists all the
completion-related options, doesn't have alwayslastprompt.

>You'll get used to it, if you use it.  I can understand how it might be
>confusing when unexpected.


More minor things I noticed while playing around:

With 3.0, there is a default compctl for setopt itself. In 3.1, it seems to
be gone. What do I have to do, pick apart the compctl example file and add
lots of stuff to /etc/zshrc, just to make 3.1 catch up with 3.0's default
completion awareness?

With automenu on, echo $ZSH_<TAB><TAB> shows ZSH_NAME with a slash after it.
Why's that?

Alan Curry

Messages sorted by: Reverse Date, Date, Thread, Author