Я испытываю различие поведения между моей предыдущей ОС (Гостеприимная Ubuntu) и моим током один (Бионическая Ubuntu).
Рассказ - это:
При использовании заполнения клавишей Tab с cd
, порядок заполнения клавишей Tab изменился.
Для демонстрации проблемы предположите, что у меня есть эта структура каталогов (все директора):
/vagrant/hello
/vagrant/hello/web
/vagrant/hello/web/hello.com
И я имею CDPATH=.:/vagrant:/vagrant/hello/web
В прошлом cd hel<TAB>
показал hello
во-первых, и hello.com
во-вторых:
$ cd hel<TAB>
hello/ hello.com/
Но теперь, это показывает его в обратном порядке, который является нежелательным:
$ cd hel<TAB>
hello.com/ hello/
Ничто, что находится под моим контролем, не изменилось между этими двумя версиями.
Более длинная история (только для ссылки, я полагаю, что она не должна иметь значения):
A) Я - "активный пользователь" CDPATH
- это изменение порядка полностью портит мой ритм.
B) В действительности я использую это .inputrc
файл, чтобы на самом деле сделать menu-complete
на вкладке (вывод выше от Shift+Tab, который является нормальным complete
).
TAB: menu-complete
"\e[Z": complete
C) Я попытался воспроизвести это в чистом (Докер) среда, но я не могу воспроизвести "плохое" поведение.
D) Я попробовал некоторые изменения menu-complete-backwards
и подобные, но результаты не лучше.
E) Я попробовал бесконечные изменения CDPATH
значения, включая изменение порядка и добавление :.
в конце.
F) При выполнении cd something<TAB>
, даже кажется, что завершение будет способствовать каталогам, которые НЕ находятся в текущем каталоге, прежде, чем выбрать тех, которые находятся в текущем каталоге - даже когда CDPATH
запускается с точки - .:/other/paths
Я не знаю, как еще отладить эту проблему, любая справка значительно ценится.
Порядок завершения, кажется, зависит от текущей локали - в особенности LC_COLLATE
Напр.
$ LC_COLLATE="C.UTF-8"
$
$ cd helloTABTAB
hello.com/ hello/
$ LC_COLLATE="en_US.UTF-8"
$
$ cd helloTABTAB
hello/ hello.com/