Если у вас возникают проблемы с «завершением аргументов» при работе с новыми командами , возможно, вам нужна команда 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
, и любые будущие оболочки.