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

В Zsh и Bash, если я наберу ls c<TAB> он отображает каждое имя файла, начинающееся с c. Если вместо этого я наберу ls c*<TAB>bash ведет себя так же, но zsh заменяет c* со списком каждого файла, начинающегося с c. Есть ли способ заставить zsh вести себя как bash?

1 ответ

setopt GLOB_COMPLETE

От man zshoptions:

GLOB_COMPLETE

Когда текущее слово имеет шаблон glob, не вставляйте все слова, являющиеся результатом расширения, но генерируйте совпадения, как для завершения, и просматривайте их, как MENU_COMPLETE. Совпадения генерируются так, как если бы '*' был добавлен в конец слова или вставлен в курсор при установке COMPLETE_IN_WORD. Это на самом деле использует сопоставление с шаблоном, а не с глобализацией, поэтому оно работает не только для файлов, но и для любого завершения, такого как параметры, имена пользователей и т. Д.

Обратите внимание, что при использовании сопоставления с образцом управление сопоставлением (например, сопоставление без учета регистра или привязка привязки) не может использоваться. Это ограничение применяется только тогда, когда текущее слово содержит шаблон; простое включение опции GLOB_COMPLETE не имеет этого эффекта.

Другие вопросы по тегам