Как мне получить автозаполнение 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 не имеет этого эффекта.