I prefer the pre-readline-6.0 version of menu completion, so I tried
using the "old-menu-complete" option in bash v4 / readline v6.
However, "old-menu-complete" doesn't behave exactly like
"menu-complete" did in bash v3 / readline v5.
For example, in bash v3:
$ mkdir directory
$ touch directory/{a,b,c,d,e}
$ less directory/ [invoke "menu-complete" command]
$ less directory/a [invoke "menu-complete" command]
$ less directory/b
In bash v4, using "old-menu-complete":
$ mkdir directory
$ touch directory/{a,b,c,d,e}
$ less directory/ [invoke "old-menu-complete" command]
a b c d e
$ less directory/a
In other words, in bash v3, "menu-complete" basically just cycles
through the possible matches, WITHOUT displaying all the possible
matches before the first cycle. However, in bash v4,
"old-menu-complete" displays ALL possible matches before cycling
through the matches on the command line.
Is there a way I can get "old-menu-complete" in bash v4 to match the
behavior of "menu-complete" in bash v3 exactly in this regard?
Thanks for your help,
Alan
Turn off `show-all-if-ambiguous'. It was a bug in pre-readline6
versions that menu completion did not honor the setting of that
variable.
Chet
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU ch...@case.edu http://cnswww.cns.cwru.edu/~chet/
The problem is, if I turn off 'show-all-if-ambiguous', hitting tab
won't display all the possible completions. I like the old behavior of
'menu-complete' because if I wanted to display the completions, I
could always hit tab before purely cycling through the choices with
'menu-complete.' So it gives more flexibility in my opinion.
Plus, I expected something with the name, 'old-menu-complete,' to
behave like the old 'menu-complete' did, but I digress...
What would be the best way for me to make old-menu-complete behave
like menu-complete did pre-readline-6.0? (In other words, behave like
'show-all-if-ambiguous' is off, while it is really on for other stuff
like tab.) Would it be best to write some sort of bash function? Or
would it be better to just modify the source code?
Thanks so much for your help,
Alan
Sure, modulo any bug fixes. It was, as I said, a bug that the menu
completion function didn't behave like other completion functions and
honor the setting of show-all-if-ambiguous. That was changed in the
readline-6.2 development cycle before I changed the behavior more
radically and split the old from the new.
> What would be the best way for me to make old-menu-complete behave
> like menu-complete did pre-readline-6.0? (In other words, behave like
> 'show-all-if-ambiguous' is off, while it is really on for other stuff
> like tab.) Would it be best to write some sort of bash function? Or
> would it be better to just modify the source code?
You'll have to modify the source code.