Если у вас возникают проблемы с «завершением аргументов» при работе с новыми командами , возможно, вам нужна команда compinit , однако она имеет механизм кэширования, который может вызывать вашу проблему.
В документации к моей версии (4.3.10) говорится, что compinit использует кэшированный «файл дампа» .zcompdump, чтобы хранить скомпилированные функции завершения для ускорения последующих вызовов. Он делает недействительным файл дампа только тогда, когда он замечает изменение количества файлов завершения ( fpathфайлы элементов, начинающиеся с #compdef …или #autoload …). Предположительно, установка нового программного обеспечения изменит количество таких файлов завершения (при условии, что оно также установит свои файлы автозаполнения zsh в нужном месте), поэтому я ожидаю, что обычный файл будет compinitработать. Если вы находитесь в ситуации, когда это не работает, вам может потребоваться обойти или вручную сделать недействительным файл дампа.
Чтобы пропустить использование файла дампа, используйте compinit -D; это повлияет только на текущую оболочку.
Чтобы восстановить файл дампа, удалите его и запустите снова compinit:
rm -i ${ZDOTDIR:-${HOME:?No ZDOTDIR or HOME}}/.zcompdump &&
compinit
Это повлияет на текущую оболочку, существующие оболочки, которые работают в обычном режиме compinit, и любые будущие оболочки.