Как получить эквивалент расширенного завершения tcsh в bash?

В tcsh manpage эффекты set complete = enhance определяются следующим образом:

[…] завершение 1) игнорирует регистр и 2) считает периоды, дефисы и символы подчеркивания ('.', '-' и '_') разделителями слов, а дефисы и подчеркивания эквивалентными.

Что касается 1), я знаю, что readline может быть сконфигурирован так, чтобы игнорировать регистр через set completion-ignore-case on . Поэтому мой вопрос касается только 2).

Например, если у меня есть каталог, содержащий несколько файлов с похожими базовыми именами, но с разными расширениями:

 $ ls file0.dat file1.dat file2.dat files.sh 

то я хочу, чтобы оболочка имела возможность завершить расширение файла:

 $ cat .sh<TAB> $ cat files.sh 

Есть ли способ достичь или, по крайней мере, подражать этому поведению в bash ?

РЕДАКТИРОВАТЬ

Следуя первым ответам, здесь приведены другие примеры, которые более точно показывают, как работает функция tcsh :

 $ ls abc.foo abc.bar cab.foo cab.bar $ cat af<TAB> $ cat abc.foo 

или:

 $ cat .b<TAB> abc.bar cab.bar $ cat .bar 

Фактически, tcsh завершает как базовое имя, так и расширение. Предложенное здесь поведение – это перечисление возможностей, если несколько, как обычно, с завершением TAB, чтобы не вставлять их все.

One Solution collect form web for “Как получить эквивалент расширенного завершения tcsh в bash?”

Это не совсем то, что вам нужно, но близко. Комбинация клавиш Ctrl + x , g ( Cx g в emacsspeak) будет содержать список расширений глобуса. Итак, в вашем примере:

 $ cat *.b*<Ctrl><x><g> abc.bar cab.bar 

Итак, в отличие от того, что вы описываете для tcsh , для этого нужен действительный glob. Другими словами, это эквивалентно

 $ echo *.b* 

Обратите внимание, что ярлык нажимает Ctrl и x вместе, затем отпускает их и нажимает g .

Это описано в man bash :

  glob-list-expansions (Cx g) The list of expansions that would have been generated by glob-expand-word is displayed, and the line is redrawn. If a numeric argument is supplied, an asterisk is appended before pathname expansion. 
  • FreeBSD csh, TAB, чтобы показать доступные варианты?
  • Можно ли настроить bash на автозаполнение с помощью одной вкладки, такой как zsh?
  • Могу ли я подавить автозаполнение определенной категории в zsh?
  • bash autocompletion не работает для имен файлов (Debian wheezy 64bit)
  • Переменные автозаполнения Bash для других команд, чем cd
  • Добавить конечную косую черту в завершении bash символьных ссылок каталога
  • Автозаполнение ZSH
  • zsh: изменить правила завершения и перекомпилировать файл .zwc
  • zsh-completion: Завершение двух частей аргумента, разделенных двоеточием
  • Как получить завершение bash для псевдонимов команд?
  • ZSH: вставить завершение на первой вкладке, даже если оно неоднозначно?
  • Как связать exstension с программой так, чтобы она работала с вкладкой complete
  • Interesting Posts

    Если сценарий запуска в `init.d` имеет стандартный вывод, где он регистрируется, если где-нибудь?

    Применение одного патча к файлам в нескольких каталогах

    Запустите службу при загрузке и автоматически обновите ее, если она умирает под AIX

    Как суммировать номера совпадений

    скрипты bash преобразуют прописные буквы в нижний регистр и наоборот

    Происхождение различных сетевых тайм-аутов?

    Не удалось удалить Root CA (UNIX: операция не разрешена)

    Автоматически включать службы systemd, установленные с помощью deb?

    DDNS (dynamic-dns) и добавление имени хоста на устройство (чтобы быть видимым в сети)

    Как настроить контейнеры Docker для уникальных IP-адресов, которые не являются стандартными?

    Отправка электронной почты с сервера за пределами сети

    rpmbuild -bp) безопасно

    Что означает ошибка «XOFF ignored, mumble mumble»?

    Экран мигает при попытке выполнить несанкционированное действие

    Отключить оболочку пользователя по соображениям безопасности

    Linux и Unix - лучшая ОС в мире.