help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Order of eshell/pcomplete completions when cycling


From: Tassilo Horn
Subject: Order of eshell/pcomplete completions when cycling
Date: Thu, 09 Apr 2015 17:20:48 +0200
User-agent: Gnus/5.130012 (Ma Gnus v0.12) Emacs/25.0.50 (gnu/linux)

Hi all,

assuming I have the directories test, test1, test2, and test11, when I
do `cd tes<TAB>' in eshell, it'll cycle the possible completions in the
order test2/, test1/, test/, test11/.

In a typical shell like ZSH or BASH, the order would be test/, test1/,
test11/, test2/, i.e., the completions come in lexicographic order.

Now I've found `pcomplete-compare-entry-function' which is
`string-lessp' by default and suggests alphabetic sorting.  That
variable is set buffer-locally to `file-newer-than-file-p' in eshell
buffers, so it seems there sorting according to creation (or
modification?) time is intended which is a very weird default value,
IMHO.

Anyway, I've created the directories in the order stated above so it
doesn't conform with the actual cycling order I get when cycling thru
the completions.

Now I've set `eshell-cmpl-compare-entry-function' to `string-lessp'.
When I fire up a new eshell buffer, `pcomplete-compare-entry-function'
is initialized to `string-lessp' in there.  But the completion order
stays unaffected.  It's still test2/, test1/, test/, test11/.

So `pcomplete-compare-entry-function' and
`eshell-cmpl-compare-entry-function' are probably the wrong knobs.
Unfortunately, I don't find another option which seems relevant.

Bye,
Tassilo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]