Определить - / и т.д.? имеет некоторую хорошую историю.
Можно найти ссылки на "и так далее" в старой Bell Labs руководства UNIX и так далее – в наше время она использовала только для конфигурации системы, но она раньше была, куда весь материал, который не вписывался в другие каталоги, пошел.
Для восстановления кэша исполняемых команд использовать rehash
или hash -rf
.
Удостоверьтесь, что Вы не сбросили hash_list_all
опция (это вызывает даже меньше доступов к диску, но делает обновление кэша менее часто).
Если Вы не хотите должными быть вводить команду, можно сказать zsh не доверять своему кэшу при завершении, вставив следующую строку Ваш ~/.zshrc
¹:
zstyle ":completion:*:commands" rehash 1
Существует стоимость производительности, но это незначительно на типичном рабочем столе, устанавливающем сегодня. (Это не, если Вы имеете $PATH
на NFS или исчерпавшей ресурсы RAM системе.)
zstyle
сама команда документируется в zshmodule
страница справочника. Значения стилей документируются в zshcompsys
и zshcompwid
страницы справочника, или можно считать источник (здесь, _command_names
функция). Если Вы хотели некоторую читаемую документацию … при нахождении некоторых сообщите мне!
¹ требует zsh≥4.3.3, Chris Johnsen спасибо
Если у Вас есть проблемы при получении “завершения аргумента”, работающего на новые команды затем 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
, и любые будущие оболочки.
Я обнаружил, что при работе с/разработке дополнений, которые находятся в файле с #compdef _foo foo
, который мне нужно использовать при каждом редактировании:
unfunction _foo && compinit
, чтобы увидеть завершение обновленной команды foo
с обновленными изменениями.
PATH="$PATH"
также сделал бы задание.HASH_LIST_ALL
показывается значением по умолчанию в моей документации. – Chris Johnsen 17.09.2010, 14:13