Как получить завершение табуляции bash, чтобы остановить экранирование подстановочных знаков glob в начале аргумента?

Когда я пытаюсь использовать табуляцию в bash для шаблона глобуса файла, начинающегося с ? или *, я получаю список параметров завершения, как и предполагалось, но затем моя командная строка изменяется, чтобы избежать специального символа глобуса.

Например:

$ ls *.txt                  # tab-complete instead of enter
bar.txt  fib.txt  foo.txt
$ ls \*.txt                 # now my '*' is escaped

А также:

$ ls ???.txt                # tab-complete
bar.txt  fib.txt  foo.txt
$ ls \?\?\?.txt             # please stop

Как заставить его прекратить экранирование специальных символов при запуске табуляции?

Этого не происходит, если специальный символ * или ? не находится в начале шаблона для завершения:

$ ls f*.txt       # tab-complete
fib.txt  foo.txt
$ ls f*.txt       # my prompt doesn't change. This is what I want.

Эта проблема кажется очень похожей на:

Однако ни одно из решений не решает мою проблему.

Немного информации о моей настройке:

  • Мой ~/.inputrc содержит (почти исключительно) set editing-mode vi и set show-all-if-unmodified on.
  • Я использую bash версию 5.0.17(1)-выпуск (x86_64-pc-linux-gnu).
  • Я удалил bash-completion, потому что это вызывало у меня еще одну проблему с завершением табуляции. (Завершение табуляции изменило мое приглашение использовать первое совпадение, а не показывать мне параметры. Мне пришла в голову идея удалить его из https://unix.stackexchange.com/a/278449/439902 .)

person Arnold Kao    schedule 01.11.2020    source источник
comment
Интересная проблема, но StackOverflow предназначен для помощи в решении проблем с программным кодом. Ваш вопрос может быть более подходящим для привилегированного пользователя или, возможно, для Unix & Linux , но прочитайте их раздел справки по тематическим вопросам . И, пожалуйста, прочитайте Помощь по теме и Помощь, как задать вопрос, прежде чем публиковать здесь дополнительные вопросы. Удачи.   -  person shellter    schedule 01.11.2020
comment
Спасибо за редирект. Поскольку я не перепостил вопрос ни по одному из них, я просто оставлю здесь комментарий о том, что проблема в show-all-if-unmodified. Вероятно, я включил его, когда у меня все еще был установлен bash-completion. Без bash-completion я не хочу ни show-all-if-unmodified, ни show-all-if-ambiguous.   -  person Arnold Kao    schedule 03.11.2020