Система завершения, активированная compinit
, улучшает базовую. Базовая система по большей части не знает контекста и почти везде дополняет только имена файлов. «Новая» система завершения, активированная compinit
, знает, что она должна завершать опции для многих команд, когда аргумент начинается с -
, что она должна завершать команды в $ PATH
] (даже в PATH корневого каталога), а не имена файлов после sudo
, что он должен завершать имена хостов после ssh
и т. д.
Я не знаю, почему вы так говорите завершение для curl «сломано». Может это потому, что он не установлен? В старых версиях zsh было завершение для curl, но более новые версии полагаются на сценарий завершения, включенный в дистрибутив curl. Убедитесь, что ваша установка curl включает _curl
где-нибудь в / usr / local / share / zsh / functions
или / usr / share / zsh / functions
(некоторые дистрибутивы отсутствует этот файл).