3

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

1 ответ1

4
setopt GLOB_COMPLETE

От man zshoptions:

GLOB_COMPLETE

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .